Für Drehung den Registrierungspunkt ändern / Actionscript 3

Um den Registrierungspunkt für eine Drehung eines Rechteckes zu verändern, benötigen wir die Matrix-Klasse. Da sich das Rechteck permanent drehen soll, muss man auf das ENTER_FRAME Event lauschen.

Für dieses Beispiel wird davon ausgegangen, dass bereits ein MovieClip mit dem Namen rect auf der Bühne liegt bzw. bereits zur Anzeigeliste hinzugefügt wurde. Dieser soll nun sozusagen mittig rotieren und nicht über seinen Standard-Registrierungspunkt beim 0,0.

//Zuerst einen EventListener anlegen
rect.addEventListener(Event.ENTER_FRAME,enter_frame);

//Die Geschwindigkeit der Drehung / Änderung
rect.aenderung = 1;

//Jeweils halbe Breite und Höhe des Rechteckes speichern
var rectWH:Number = rect.width/2; //halbe breite des zu transformierenden Objektes
var rectHH:Number = rect.height/2; //halbe höhe des zu transformierenden Objektes

//Die EventListener-Funktion
function enter_frame(evt:Event)
{
var rotationMatrix:Matrix = new Matrix(); //Instanz erzeugen
rotationMatrix.translate(-rectWH, -rectHH); //verschiebt Objekt auf x/y-Achse
rotationMatrix.rotate(rect.aenderung ); //Rotation durchführen
rotationMatrix.translate(rectWH, rectHH); //nochmals verschieben

rect.transform.matrix = rotationMatrix; //Transformation anwenden
rect.aenderung += 1; //Geschwindigkeit hochzählen
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert