2011-06-01 159 views
0

我想要一个有点深度的影片剪辑。 我不能使用rotationX,rotationY或rotationZ,因为我必须使用Flash CS3。影片剪辑透视

第一个图像是我现在拥有的一个扁平的动画片段。第二个是我应该拥有的。

enter image description here enter image description here

我已经尝试过使用矩阵,但没有奏效。 我对此提出了a question,有人主张我应该使用3D引擎来获得我想要的结果。

由于这是一个必须在3D中的MovieClip,我现在使用了一个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,但我从来没有得到那个工作。

你能帮我把视频片段放在视角吗?

非常感谢!

Vincent

+1

Vinzcent如果你正在张贴有关如何使用Away3D中与您的项目推进了一个新问题,那么请选择适当的“正确”答案您先前的问题。如果不这样做,这看起来更像是一个双重职位,而不是一个关于新问题的问题。 – 2011-06-01 07:28:29

+0

继续从我的第一个评论为其他谁可能好奇,这个问题是*几乎*这个问题的重复:http://stackoverflow.com/questions/6184199/as3-simulating-rotationx-with-matrix。我这样说是因为这些问题在技术上可以在第一个问题中得到解决。如果不是,那么我认为最好只是结束上面的问题并编辑这个问题,以清楚地将其定义为一个新问题。 – 2011-06-01 07:43:50

+0

@AscensionSystems完成;) – Vinzcent 2011-06-01 08:32:17

回答

2

在enter_frame函数中是“view.render”吗?

它为我用Flashdevelop中&的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(); 
    }