2009-11-25 5 views
8

Hier ist etwas, was ich versuchen möchte, um Anzeigeobjekte in ActionScript3/Flex herauszufinden. Angenommen, Sie haben ein Anzeigeobjekt haben die Registrierungspunkt ist in der oberen linken und wollen, dass es von seiner Mitte (Mitte des Anzeigeobjekts) skalieren, Wie könnte man dies leicht mit der Klasse flash.geom.Matrix acheiveAS3 verwendet eine Matrix, um ein Objekt von seinem "Zentrum" zu "skalieren"

Danke für Ihre Hilfe

Antwort

8

Dies geschieht, indem Sie das Objekt in das gewünschte Skalen-/Rotationszentrum übersetzen, skalieren/drehen und dann zurück übersetzen.

Sie, dass durch die Verkettung der Matrizen mit einer einzigen Matrix tun können eine einzelne Matrix zu erhalten:

var m:Matrix = new Matrix(); 
m.translate(-centerX, -centerY); 
m.scale(scaleX, scaleY); 
m.translate(centerX, centerY); 
+0

Dank Aaron, viel –

+0

translate() und Skala() sind keine statischen Methoden apreciated. Sie müssen sie von einer Matrix-Instanz aus aufrufen. – picardo

+0

Übrigens ist der Rückgabewert für beide Methoden ungültig. – picardo

Verwandte Themen