使用tweenlite补间3d坐标

时间:2011-02-26 22:34:19

标签: actionscript-3 3d coordinates papervision3d tweenlite

我试图使用AS3将精灵补间到新的3D坐标(x,y,z),我想使用TweenLite来做,但我不知道怎么做?

我不是一个非常有经验的程序员,我只是开始解决flash 10的三维可能性,而Tweenlite对于我的动画到目前为止一直非常有用。

我一直试图像这样使用QuaternionsPlugin:

TweenLite.to(myMc, 2, {quaternions:{orientation:new Quaternion(x, y, z, w)}});

有x,y,z属性,但我无法弄清楚w代表什么。 我尝试了下面的Sprite类的例子,但是当我编译它时,它说:1180:调用一个可能未定义的方法Quaternion。

package com{
import flash.display.*;
import flash.events.*;  
import com.greensock.TweenLite; 
import com.greensock.plugins.TweenPlugin; 
import com.greensock.plugins.QuaternionsPlugin;  

TweenPlugin.activate([QuaternionsPlugin]); //activation is permanent in the SWF, so this line only needs to be run once.

public class Carousel extends Sprite {
     public function Carousel():void {      

    }

    public function scrollUp():void{
        TweenLite.to(Mc1, 2, {quaternions:{orientation:new Quaternion(246, 244, 0, 400)}});
        TweenLite.to(Mc2, 2, {quaternions:{orientation:new Quaternion(242, 210, 70, 353)}});
    }

    public function scrollDown():void{
        TweenLite.to(Mc1, 2, {quaternions:{orientation:new Quaternion(242, 290, 60, 360)}});
        TweenLite.to(Mc2, 2, {quaternions:{orientation:new Quaternion(246, 244, 0, 400)}});
    }
}

}

非常感谢任何提示/帮助!

1 个答案:

答案 0 :(得分:0)

Quanternion 对象来自PaperVision3D的数学课。 “w”表示旋转角度,四元数保证旋转的最有效路径。

Vector3D个对象具有w属性。 Matrix3D的 interpolate() 方法使用四元数,因此您可以使用Matrix3D的intropolate()transformVector()方法进行补间,或者您可以简单地补间x,y和z属性您的显示对象 - 假设您不需要绝对最有效的渲染。