Un vantaggio offerto dalla creazione di contenuti con l'API di disegno consiste nel fatto che non si è limitati dal fatto di dover posizionare i contenuti una sola volta. Ciò che si disegna può essere cambiato mantenendo o modificando le variabili utilizzate per il disegno. Potete trasmettere l'effetto dell'animazione modificando le variabili e ridisegnando, sia rispetto a un intervallo di fotogrammi sia utilizzando un timer.
Ad esempio, il codice seguente modifica la visualizzazione a ogni fotogramma (ascoltando l'evento
Event.ENTER_FRAME
), incrementando il conteggio dei gradi corrente, e specifica all'oggetto Graphics di cancellare e ridisegnare con la posizione aggiornata.
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;
}
Per produrre un risultato significativamente diverso, potete sperimentare modificando le variabili seed iniziali all'inizio del codice,
currentDegrees
,
radius
e
satelliteRadius
. Ad esempio, provate a ridurre la variabile radius e/o a incrementare la variabile totalSatellites. Si tratta solo di un esempio di come l'API di disegno è in grado di creare una visualizzazione la cui complessità nasconde in realtà una semplicità di creazione.