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