用as3如何实现轨迹运动。在线等~~~~
用as3如何实现轨迹运动...我用away3d在as3里定义了一个球Sphere。我想用代码实现Sphere做圆形或者椭圆形轨迹运动,该如何实现呢。。。可以加分~~告手帮...
用as3如何实现轨迹运动... 我用away3d在as3里定义了一个球Sphere 。 我想用代码实现Sphere做圆形或者椭圆形轨迹运动, 该如何实现呢。。。 可以加分~~告手帮帮忙~~~~~
展开
3个回答
展开全部
//正好有这么一个:Oval.as
//在舞台上MC实例名为ball
package {
import flash.display.Sprite;
import flash.events.Event;
public class Oval extends Sprite {
private var angle:Number = 0;
private var centerX:Number = 200;
private var centerY:Number = 200; //运动中心点
private var radiusX:Number = 200; //X方向运动范围
private var radiusY:Number = 100; //Y方向运动范围,如果与上一个相等,就是圆开轨迹
private var speed:Number = .1;
public function Oval() {
init();
}
private function init():void {
ball.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
ball.x = centerX + Math.cos(angle) * radiusX;
ball.y = centerY + Math.sin(angle) * radiusY;
angle += speed;
}
}
}
//在舞台上MC实例名为ball
package {
import flash.display.Sprite;
import flash.events.Event;
public class Oval extends Sprite {
private var angle:Number = 0;
private var centerX:Number = 200;
private var centerY:Number = 200; //运动中心点
private var radiusX:Number = 200; //X方向运动范围
private var radiusY:Number = 100; //Y方向运动范围,如果与上一个相等,就是圆开轨迹
private var speed:Number = .1;
public function Oval() {
init();
}
private function init():void {
ball.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
ball.x = centerX + Math.cos(angle) * radiusX;
ball.y = centerY + Math.sin(angle) * radiusY;
angle += speed;
}
}
}
展开全部
比较难用语言描述啊,既然用了3d引擎引导线肯定是不行啦。
建议用关键点的方法,用数组盛放关键点(Point3d),然后用TweenLite类来形成线性移动动画,让小球依次通过每个关键点。
如果运动是非常规律的,也可以用特殊算法。不过三维旋转的算法比较复杂,不建议新手使用
建议用关键点的方法,用数组盛放关键点(Point3d),然后用TweenLite类来形成线性移动动画,让小球依次通过每个关键点。
如果运动是非常规律的,也可以用特殊算法。不过三维旋转的算法比较复杂,不建议新手使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询