Одним из преимуществ создания содержимого с помощью API рисования является возможность неоднократного размещения содержимого. Создаваемые рисунки могут изменяться путем ввода и изменения переменных, используемых для рисования. Анимация может создаваться посредством изменения переменных и обновления рисунка либо через несколько кадров, либо с помощью таймера.
Например, следующий код изменяет отображение в каждом передаваемом кадре (посредством прослушивания события
Event.ENTER_FRAME
) с помощью увеличения текущего счета и направляет графический объект на очистку и перерисовку в обновленной позиции.
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 рисования упрощает процесс создания сложных визуальных объектов отображения.