使用绘图 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 如何创建可视显示内容(其复杂性掩盖了创建简便性)的示例。