【问题标题】:actionscript-3 papervision3d mxmlc embedded collada model not showingactionscript-3 papervision3d mxmlc 嵌入式 collada 模型未显示
【发布时间】:2013-02-22 22:23:39
【问题描述】:

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

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”应用到草地平面上来检查它,它显示得很好。因为纹理与模型在同一个文件夹中,所以我知道导航到模型位置的路径不是问题。

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

我是否遗漏了任何命令行参数或类似的东西?

不知道有没有其他方法可以嵌入这个模型?

【问题讨论】:

    标签: actionscript-3 apache-flex mxmlc collada papervision3d


    【解决方案1】:

    问题解决了!

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

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

    使用第二个代码,用mxmlc编译后,模型显示正常!

    希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2011-11-14
      • 2012-05-01
      • 1970-01-01
      • 2010-11-25
      • 2010-12-04
      • 2011-11-21
      • 1970-01-01
      • 2015-05-23
      相关资源
      最近更新 更多