我想要一个有一定深度的MovieClip。我不能使用rotationX、rotationY或rotationZ,因为我必须使用FlashCS3。
第一张图片是我现在拥有的,一个平面的电影。第二个是我应该拥有的东西。


我已经试过用矩阵了,但那不管用。我给a question摆了个姿势,有人说我应该用3D引擎来得到我想要的结果。
因为MovieClip必须是3D的,所以我现在用的是MovieClipSprite。
var movieClipSprite:MovieClipSprite = new MovieClipSprite(myMC);
var view:View3D = new View3D({x:200,y:200});
var cam:Camera3D = new Camera3D();
cam.zoom = 1;
cam.y = 100;
view.camera = cam;
cam.lookAt(new Number3D(0, 0, 0));
this.addChild(view);
view.scene.addSprite(movieClipSprite);
view.render();不管我怎么换相机,我总是得到同样的结果。扁平的电影。
然后我阅读了Away3D文档
MovieClipSprite:球形广告牌(总是面向摄像机)精灵对象,它使用电影的纹理。在场景中用z排序三角形绘制单独的显示对象.
我认为这就是为什么它总是给出同样的结果。
我也尝试了一些与MovieMaterial,但我从来没有做到这一点。
你能帮我把我的电影看清楚吗?
非常感谢!
文森
发布于 2011-06-08 12:07:17
"view.render“在enter_frame函数中吗?
对我来说,它适用于闪存开发& Away3d 4.0:
public var aSprite:Plane = new Plane(new ColorMaterial(0xFF0000));
public var cam:Camera3D = new Camera3D();
public var view:View3D = new View3D(null,cam);
public function test()
{
this.addChild(view);
var vec:Vector3D = new Vector3D();
cam.y = -300;
cam.lookAt(vec);
view.scene.addChild(aSprite);
this.addEventListener(Event.ENTER_FRAME, onFrame);
}
public function onFrame(e:Event):void
{
view.render();
}https://stackoverflow.com/questions/6197192
复制相似问题