我需要从一个DisplayObject3D创建一个.DAE文件,但不知道该怎么做。只有我找到有关如何导入DAE的信息。从未如何出口它。
感谢。
我无法简单地为“容器”改变“网格”。
我不太了解这一行:
mesh = scene.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));
如果我这样做:
mesh = container.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));
然后它用纸板创建一个dae,但只创建纸板,而不是“容器”中存在的其他对象。
如何使用DisplayObject3D“容器”的对象创建dae?
由于
答案 0 :(得分:0)
您可以使用ExportCollada的export()静态方法编写.DAE文件:
trace(ExportCollada.export(yourDisplayObject3D));
我已经汇总了一个非常基本的例子here:
运行测试并双击舞台将平面保存为.dae文件到磁盘。
<强>更新强>
嵌套对象也可以正常工作here:
你提到过这一行:
mesh = scene.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));
这只是在一行中做多件事的懒惰方式:
这可能更有意义:
var mesh:DisplayObject3D = new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3);
scene.addChild(mesh);
您修改过的代码段:
mesh = container.addChild(new PaperPlane(new FlatShadeMaterial(light,0xFFFF00,0xFF6600),3));
表示网格等于通过将纸平面添加到容器(即纸平面)返回的DisplayObject3D,因此如果要导出网格,则只导出平面。 如果导出容器,则应该获取容器具有的所有子元素的dae。
可能更容易更改此行:
data.writeUTFBytes(ExportCollada.export(mesh));
到此:
data.writeUTFBytes(ExportCollada.export(container));//assuming container is visible here