繁体   English   中英

actionscript-3 papervision3d mxmlc嵌入式collada模型未显示

[英]actionscript-3 papervision3d mxmlc embedded collada model not showing

我正在根据以下教程编写一些代码:

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使用以下命令编译.as:

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

而且我没有编译错误。

但是,当我运行.swf时,草平面和天穹通常会以其嵌入的纹理出现,但是collada模型不会显示。

我自己的调试文本将模型的宽度显示为0,因此看起来模型尚未加载。 Collada类仍然可以正常工作,因为我能够移动模型的3D坐标,从而移动以模型的坐标为中心的3D文本。 显示文本,但模型不可见。

通过简单的更改,我可以将模型的纹理“ Cow.png”应用到草地平面上,从而可以很好地显示它。 因为纹理与模型位于同一文件夹中,所以我知道导航到模型位置的路径不是问题。

有谁知道使用mxmlc编译后Collada模型可能无法显示的任何原因吗?

我是否缺少任何命令行参数或类似的东西?

否则,还有其他嵌入该模型的方法吗?

问题解决了!

编译器mxmlc要求我将cowByteArray定义为XML:

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

使用第二个代码,在使用mxmlc进行编译之后,该模型可以正常显示!

希望这对某人有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM