使用绘图 API 进行动画处理
Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本
使用绘图 API 创建内容的一个优点是,您并不限于将内容放置一次。可通过保留和修改用于绘制的变量来修改所绘制的内容。您可以通过更改变量和重绘(在一段帧上或使用计时器)来利用原有的动画。
例如,以下代码更改每个经过的帧(通过侦听
Event.ENTER_FRAME
事件)的显示内容以增加当前度数,指示 graphics 对象清除内容并在更新位置进行重绘。
stage.frameRate = 31;
var currentDegrees:Number = 0;
var radius:Number = 40;
var satelliteRadius:Number = 6;
var container:Sprite = new Sprite();
container.x = stage.stageWidth / 2;
container.y = stage.stageHeight / 2;
addChild(container);
var satellite:Shape = new Shape();
container.addChild(satellite);
addEventListener(Event.ENTER_FRAME, doEveryFrame);
function doEveryFrame(event:Event):void
{
currentDegrees += 4;
var radians:Number = getRadians(currentDegrees);
var posX:Number = Math.sin(radians) * radius;
var posY:Number = Math.cos(radians) * radius;
satellite.graphics.clear();
satellite.graphics.beginFill(0);
satellite.graphics.drawCircle(posX, posY, satelliteRadius);
}
function getRadians(degrees:Number):Number
{
return degrees * Math.PI / 180;
}
要产生明显不同的效果,您可以尝试修改代码开头的初始种子变量(
currentDegrees
、
radius
和
satelliteRadius
)。例如,尝试缩小 radius 变量和/或增大 totalSatellites 变量。这只是一个说明绘图 API 如何创建可视显示内容(其复杂性掩盖了创建简便性)的示例。
|
|
|