![](/img/trans.png)
[英]mxmlc java.util.zip.ZipException: invalid block type Actionscript-3 Papervision3D Flash Develop
[英]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.