第三章 三角学应用Ⅱ [FL 基理译]
2009-05-30 12:08:41 来源:WEB开发网package {
import flash.display.Sprite;
import flash.events.Event;
public class Circle extends Sprite {
private var ball:Ball;
private var angle:Number = 0;
private var centerX:Number = 200;
private var centerY:Number = 200;
private var radius:Number = 50;
private var speed:Number = .1;
public function Circle() {
init();
}
private function init():void {
ball = new Ball();
addChild(ball);
ball.x = 0;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
public function onEnterFrame(event:Event):void {
ball.x = centerX + Math.cos(angle) * radius;
ball.y = centerY + Math.sin(angle) * radius;
angle += speed;
}
}
}
大家可以自己写这个例子,也可以打开 Circle.as 作为文档类。执行后发现,获得了一个完美的圆。这段代码的精华就是使用余弦来确定 x 坐标,使用正弦来确定 y 坐标,你应该对他们的关系非常了解了。在 Flash 中,只要提到 x ,你就应该马上想到余弦,并且还能联想到 y 使用正弦。请在最后这段代码上多花些时间,它将是 ActionScript 动画工具箱中最有用的工具之一。
椭圆运动
想要获得一个椭圆该怎么办呢,其实很简单,问题就在于半径。如果让x和y运动的大小相同,那么就得到一个圆。如果想得到一个椭圆形,我们只需要在计算x和y位置时使用不同的半径值: radiusX 和 radiusY 。从严格的几何观点来看,使用这两个名称实在不怎么好,但是它们确实非常简单易懂,也非常好记非常直观,所以我还是坚持使用这两个变量名。下面看看它们是如何配合的,见 Oval.as:
更多精彩
赞助商链接