2011-02-26 65 views
0

即时尝试补间一个精灵到新的三维坐标(x,y,z)使用AS3和我想使用TweenLite做到这一点,但我不知道如何?使用tweenlite补间3d坐标

我不是一个非常有经验的程序员,我只开始处理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)}}); 
    } 
} 

}

感谢任何提示/帮助,真的!

回答

0

the Quanternion object is from PaperVision3D's math class。 “w”表示旋转角度,四元数保证旋转的最有效路径。

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

+0

非常感谢,我有一个更好的理解和更多的东西挖掘。这是有帮助的。 – 2011-02-27 17:27:20