2012-04-07 102 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位圖,但您至少會測試它是否可以解決問題,您可能需要對此解決方案進行微調。

相關問題