2012-04-07 98 views
1

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

我有一个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在这样的环境。任何想法如何做到这一点?谢谢。

回答

0

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

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

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

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

内的AdDuplex控制应处理的点击次数为您服务。

+0

谢谢。我这样做,我确实看到了广告,但是当用户点击它时,什么也没有发生。你所做的事情会为你提供印象,但不是我猜想的点击。 – xus 2012-04-07 13:20:50

+0

点击的效果与预期相符。也许有其他的东西阻止你的AdDuplex控件接收到点击事件,也许是你XAML中的东西?你可以发布你的XAML吗? – kelbicom 2012-04-07 17:34:34

+0

好的,我刚刚添加了xaml,是否能告诉你什么是错的?谢谢! – xus 2012-04-10 09:41:18

1

没有看到背后的代码和完整的XAML我不能肯定地说,但线索是在保证金=“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位图,但您至少会测试它是否可以解决问题,您可能需要对此解决方案进行微调。

相关问题