Jedną z zalet tworzenia treści przy użyciu rysunkowego interfejsu API jest łatwość powielania elementów. Każda rysowana forma może być zmodyfikowana poprzez zmianę wartości zmiennych ją opisujących. Modyfikując wartości zmiennych i ponownie rysując elementy, można uzyskać animację synchronizowaną kolejnymi klatkami lub licznikiem czasu.
Na przykład poniższy kod zmienia wyświetlany obraz w każdej kolejnej klatce (wykrywając zdarzenie
Event.ENTER_FRAME
). Zmiana polega na inkrementacji bieżącej liczby stopni i nakazaniu obiektowi graficznemu wyczyszczenia, a następnie narysowania się w nowym miejscu.
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;
}
Modyfikacja wartości zmiennych
currentDegrees
,
radius
i
satelliteRadius
na początku kodu umożliwia uzyskanie radykalnie odmiennych efektów. Spróbujmy na przykład zmniejszyć promień (radius) i/lub zwiększyć wartość zmiennej totalSatellites. Jest to jedynie przykład zastosowania rysunkowego interfejsu API do uzyskania efektów wizualnych, które są zaskakująco wyrafinowane, jeśli wziąć pod uwagę, jak prosto się je tworzy.