我试图将swf加载到3D Objectcontainer.Im使用Away3D(黄金)
基本上我已经将一个对象加载到一个3d容器中,现在我想在同一个容器中加载一个swf。我现在将我的对象和SWF放在同一个容器中,所以如果我旋转容器,那么我的SWF.My swf只包含文本,现在它只是一个测试......
使用的加载方法是一个数组...... 有什么想法吗?
我的错误:
TypeError: Error #1034: Type Coercion failed: cannot convert
flash.display::MovieClip@30ee0e41 to away3d.containers.ObjectContainer3D.
答案 0 :(得分:1)
Away3D 4,有点困难。但我会试着指出你正确的方向。
您需要使用Geometry和Material创建一个Mesh。
材质具有MovieClip的纹理。 几何是PlaneGeometry
Mesh是您需要添加到ObjectContainer3D的Object3D实例。
你的代码看起来像这样:
var bitmapData:BitmapData = new BitmapData( mc.width, mc.height, false, 0x000000 );
var texture:BitmapTexture = new BitmapTexture( bitmapData );
var material:TextureMaterial = new TextureMaterial( texture, true );
var geometry:PlaneGeometry = new PlaneGeometry( mc.width, mc.height );
var planeMesh:Mesh = new Mesh( geometry, material );
_3dcontainer.addChild( planeMesh );
现在要使MovieClip动画化,您需要更新纹理的位图:
mc.addEventListener( Event.ENTER_FRAME, updateTexture );
private function updateTexture( e:Event ):void {
texture.bitmapData = new BitmapData( mc.width, mc.height, false, 0x000000 );
}
同样,我没有对此进行测试,而且很久以前我使用了Away3D 4.只是不要忘记导入已使用的类。