2009-11-25 4 views
8

Ecco qualcosa che sto cercando di capire riguardo agli oggetti di visualizzazione in ActionScript3/Flex. Supponiamo che tu abbia un oggetto di visualizzazione il cui punto di registrazione si trova in alto a sinistra e che desideri ridimensionarlo dal centro (metà dell'oggetto di visualizzazione), Come potresti facilmente ottenerlo con la classe flash.geom.MatrixAS3 che utilizza una matrice per "scalare" un oggetto dal suo "centro"

Grazie per il vostro aiuto

risposta

8

Questo viene fatto convertendo l'oggetto nel centro di scala/rotazione desiderato, ridimensionandolo/ruotandolo e quindi traducendolo.

che si può fare con una sola matrice concatenando le matrici per ottenere un'unica matrice:

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

Grazie Aaron, molto apprezzata –

+0

translate() e la scala() non sono metodi statici. Devi chiamarli da un'istanza Matrix. – picardo

+0

E a proposito, il valore restituito su entrambi i metodi è nullo. – picardo