2011-10-04 27 views
3

我正在嘗試使用Stage3D API在ActionScript 3.0中編寫3D遊戲。我已將playerglobal.swc複製到我的frameworks/libs/player/11.0目錄中,並通過將target-player更改爲11.0.0swf-version13來修改frameworks/flex-config.xml文件。Flash Player 11中的Stage3D不顯示

當我使用mxmlc編譯我的ActionScript 3.0文件時,我設置了選項-target-player=11.0.0-static-link-runtime-shared-libraries=true。現在,我在導入com.adobe.utils.AGALMiniAssemblerflash.display.Stage3D時沒有在編譯時出錯,所以我認爲這沒有問題。

我在Opera中運行已編譯的SWF文件,並且使用了今天公開發布的最新Flash Player(版本11.0.1.152)(乾杯; D)。玩家似乎沒有問題,因爲我可以玩殭屍大亨。但是,當我播放SWF文件時,Stage3D不顯示;但連接到舞臺的所有其他顯示對象都會顯示。

我相信我的配置或代碼有問題,但我無法確定它。我使用的代碼只是從Labs @ Jam3複製而來。我相信視口有問題,所以我簡單地用stage.stage3Ds[0].x=0; stage.stage3Ds[0].y=0;替換了stage.stage3Ds[0].viewPort=new Rectangle(0, 0, 980, 570);。也許,這是問題的原因。

我一直在尋找一個解決方案遍佈全球,但我似乎無法找到它。任何幫助將不勝感激。但是請注意,我不希望使用像Away3D這樣的框架,因爲我希望使用低級功能(我更喜歡編程)。如果您想了解更多詳情,請詢問。

+0

*確保你有最新的playerglobal.swc。 – Miha

+0

此外,如果您在html中查看Flash影片,則可以檢查正確的wmode參數(http://kb2.adobe.com/cps/127/tn_12701.html)。 – Miha

+1

_ @ Miha_ - 謝謝。將'wmode'參數設置爲'direct'解決了這個問題。 –

回答

4

@Miha - 謝謝你回答我的問題。我將wmode參數設置爲direct,並且它像一個魅力。顯然,Stage3D API在transparentopaquewindow模式下不起作用。如果有人有類似的問題,這是我的HTML代碼,解決了這個問題:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="UTF-8"\> 
    <title>Hello Stage3D!</title> 
    </head> 
    <body> 
    <object width="800" height="600" data="HelloStage3D.swf"> 
     <param name="wmode" value="direct"/> 
    </object> 
    </body> 
</html> 

要使用Stage3D的API,您必須將wmode參數設置爲direct。沒有別的工作。 9號線是必要的。

相關問題