值得一提的是,大多数人都知道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。有什么想法怎么做?感谢。
答案 0 :(得分: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位图,你可能想要调整这个解决方案,但至少它会测试它是否解决了这个问题。
答案 1 :(得分:0)
我在我的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控件应该为您处理点击。
答案 2 :(得分:0)
我使用了Nick Gravelin的这个助手课程,现在它就像一个魅力:
谢谢!