【问题标题】:Using AdDuplex in a XNA - Silverlight WP7 hybrid application在 XNA - Silverlight WP7 混合应用程序中使用 AdDuplex
【发布时间】:2012-04-20 15:40:16
【问题描述】:

可以证明,你们中的大多数人都知道 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。关于如何做的任何想法?谢谢。

【问题讨论】:

    标签: silverlight windows-phone-7 xaml xna


    【解决方案1】:

    没有看到背后的代码和完整的 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 位图,您可能需要调整此解决方案,但至少它会测试它是否解决了问题。

    【讨论】:

      【解决方案2】:

      我在我的 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 控件应该为您处理点击。

      【讨论】:

      • 谢谢。我这样做了,我确实看到了广告,但是当用户点击它时,什么也没有发生。你的做法会给你带来印象,但我猜不是点击。
      • 点击效果完全符合预期。也许还有其他东西阻止您的 AdDuplex 控件接收点击事件,也许是您的 XAML 中的某些东西?你能发布你的 XAML 吗?
      • 好的,我刚刚添加了 xaml,您知道出了什么问题吗?谢谢!
      【解决方案3】:

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

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

      谢谢!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-05
        • 2012-05-03
        • 1970-01-01
        • 2011-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多