2013-03-07 20 views
1

我寫基於以下教程一些代碼:動作-3 Papervision3D的mxmlc的嵌入式COLLADA模型沒有顯示

http://active.tutsplus.com/tutorials/3d/quick-tip-displaying-a-3d-model-with-papervision3d/

我從例子中複製的代碼,並添加路徑到我自己的資產。

[Embed(source="/Models/daeModel/cow.dae", mimeType="application/octet-stream")]  
private var CowModelClass:Class;   
[Embed(source="/Models/daeModel/Cow.png")]  
private var CowTextureClass:Class; 
[Embed(source="/Models/SkyDome/images.jpg")]  
private var SkyTextureClass:Class; 
[Embed(source="/Textures/grass-texture.jpg")]  
private var GrassTextureClass:Class; 

上面顯示的資產被用於顯示的Collada牛模型體育館(球體)下站在草(平面),所以我的代碼從教程略有不同和我加載的Collada不DAE。

import org.papervision3d.objects.parsers.Collada; 

我發佈它在Flash CS3中,並且.swf完美地工作。牛模型顯示器,草坪飛機和天梯都顯示出來。

不幸的是資產在運行時加載,因爲Flash CS3中沒有嵌入。

要嵌入的資產,然後我編譯使用mxmlc.exe使用。如:

-static-link-runtime-shared-libraries=true 

和我沒有得到任何編譯錯誤。

然而,當我運行瑞士法郎,草面和體育館通常與他們的嵌入式紋理出現,但COLLADA模型沒有顯示。

我自己的調試文本模型顯示爲0的寬度,所以它看起來像模型沒有加載。 Collada類仍能正常工作,因爲我可以移動模型的3D座標,從而移動一些以模型座標爲中心的3D文本。文本顯示但模型不可見。

通過製作一個簡單的變化,我能夠通過其應用到飛機草檢查模型的貼圖「Cow.png」,它顯示了罰款。因爲紋理與模型位於同一個文件夾中,所以我知道將路徑導航到模型的位置不成問題。

有誰知道的任何理由Collada模型可能不會出現後mxmlc的編譯?

我是否缺少任何命令行參數或類似的東西?

做不到這一點是有嵌入該模型的任何其他方式?

回答

0

問題解決了!

編譯器mxmlc的要求我定義爲cowByteArray XML:

//load cow model MXMLC 
var cowByteArray:ByteArray = new CowModelClass (); 
cow = new Collada () ; 
cow.load (new XML(cowByteArray), cowMaterialsList) ; 

使用第二個代碼,與mxmlc的編譯後,模型顯示了罰款!

希望這可以幫助別人!

相關問題