我正在尝试使用AS3将精灵补间到新的3D坐标(x,y,z),我想使用TweenLite来实现,但我不知道怎么做?
我不是一个非常有经验的程序员,我只是开始处理flash 10的3d可能性,到目前为止,Tweenlite对我的动画非常有帮助。
我一直在尝试这样使用QuaternionsPlugin:
TweenLite.to(myMc, 2, {quaternions:{orientation:new Quaternion(x, y, z, w)}});有x,y,z属性,但我不知道w代表什么。我在下面的Sprite类中尝试了一个例子,但当我编译它时,它显示: 1180: Call to an undefined method 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)}});
}
}}
谢谢你的任何提示/帮助,真的!
发布于 2011-02-27 11:10:52
Quanternion对象来自PaperVision3D的数学类,"w“表示旋转的角度,四元数保证旋转的最有效路径。
Vector3D对象有w个属性。Matrix3D的方法使用四元数,因此您可以使用Matrix3D的intropolate()或transformVector()方法进行补间,或者您可以简单地在显示对象的x、y和z属性之间进行补间-假设您不需要绝对最有效的渲染。
https://stackoverflow.com/questions/5130160
复制相似问题