繁体   English   中英

在 XNA 中使用 AdDuplex - Silverlight WP7 混合应用程序

[英]Using AdDuplex in a XNA - Silverlight WP7 hybrid application

可以证明,你们中的大多数人都知道 AdDuplex 可以交叉推广 WP7 应用程序和游戏。 该广告引擎提供两个 SDK,一个用于 XNA 游戏,另一个用于 Silverlight 应用程序。

我有一个 SL-XNA 混合游戏,我找不到让广告在这样的环境中工作的方法。 我已经能够在 XNA 图形环境中使用 Silverlight UIElementRenderer 呈现广告,但我找不到处理点击它的方法。

这是 XAML 的样子:

<Grid Name="root" Margin="0,0,0,7000" Width="480" Height="90" Background="Black" >
    <adduplex:AdControl x:Name="adDuplex" xmlns:adduplex="clr-namespace:AdDuplex;assembly=AdDuplex.AdControl.Silverlight"
        AppId="10675" 
    />
</Grid>

我听说有人在这样的环境中使用过 adDuplex。 关于如何做的任何想法? 谢谢。

没有看到后面的代码和完整的 XAML 我不能肯定地说,但线索在 Margin="0,0,0,7000" 中。 我的猜测是您将 AdDuplex 控件绘制在与其实际位置不同的位置。

如果你正在初始化 UIElementRender 是这样的

    renderer = new UIElementRenderer(adDuplex, 480, 90);

像这样画

    renderer.Render();
    spriteBatch.Begin();
    spriteBatch.Draw(renderer.Texture, Vector2.Zero, Color.White);
    spriteBatch.End();

这样就可以解释问题了。 相反,在 AdDuplex 控件上设置 Margin="0"(确保它在页面上可见)并使用页面上的根元素初始化 UIElementRenderer。 默认情况下,这是一个名为“root”的网格,但您可能已将其更改为其他名称。

renderer = new UIElementRenderer(root, 480, 800);

绘制代码应该与上面相同。 AdDuplex 控件现在应该绘制在与实际控件相同的位置,点击它应该会启动 web 浏览器。

如果您不想每帧都绘制 480,800 bitmap,您可能需要修改此解决方案,但至少它会测试是否可以解决问题。

我在我的 SL-XNA 混合应用程序“Yaht 3D”中使用 AdDuplex 没有任何问题。 听起来你做的一切都是对的。 只需将 Silverlight 控件放入您的 XAML(使用您自己的应用程序 ID)。

        <adduplex:AdControl xmlns:adduplex="clr-namespace:AdDuplex;assembly=AdDuplex.AdControl.Silverlight"
                        AppId="1234"/>

并在 OnDraw 方法后面的代码中使用 UIElementRenderer

    elementRenderer.Render();
    spriteBatch.Begin();
    spriteBatch.Draw(elementRenderer.Texture, Vector2.Zero, Color.White);
    spriteBatch.End();

AdDuplex 控件应为您处理点击。

我使用了 Nick Gravelin 的这个助手 class,现在它就像一个魅力:

http://blogs.msdn.com/b/nicgrave/archive/2011/09/26/change-in-uielementrenderer-behavior-and-update-to-uielementrendererhelper.aspx

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM