2009-11-25 9 views
8

Esto es algo que estoy tratando de resolver con respecto a los objetos de visualización en ActionScript3/Flex. Digamos que tiene un objeto de visualización cuyo punto de registro está en la esquina superior izquierda y desea escalarlo desde su centro (centro del objeto de visualización), ¿Cómo podría lograrlo fácilmente con la clase flash.geom.MatrixAS3 usando una Matriz para "escalar" un objeto desde su "centro"

Gracias por su ayuda

Respuesta

8

Esto se hace trasladando el objeto al centro de escala/rotación deseado, lo escala/gira y luego lo traduce de nuevo.

Usted puede hacer eso con una sola matriz mediante la concatenación de las matrices para obtener una sola matriz:

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

Gracias Aaron, mucho más apreciada –

+0

translate() y la escala() no son métodos estáticos. Debe llamarlos desde una instancia de Matrix. – picardo

+0

Y, por cierto, el valor de retorno en ambos métodos es nulo. – picardo

Cuestiones relacionadas