2011-05-25 3 views
1

J'essaie de comprendre la fonctionnalité de la matrice de flash, car je pense qu'il va me aider à résoudre ce problème:flash matrice de compréhension AS3

J'ai une série de cases disposées en 4 colonnes. Je veux mettre à l'échelle une colonne (par exemple, par un facteur de 2) - et comprendre quelle sera sa nouvelle largeur afin que je puisse déplacer les autres colonnes de façon appropriée afin qu'elles ne soient pas couvertes par la colonne nouvellement redimensionnée. Comment puis-je comprendre cela en utilisant une matrice? Les matrices sont-elles vraiment nécessaires, et si oui, quand et pourquoi? Il me semble que je pourrais simplement prendre la largeur de quelque chose, la multiplier par 2, et utiliser cette valeur pour déplacer toutes les autres colonnes - pourquoi une matrice est-elle meilleure? Si j'utilise le code ci-dessous, comment puis-je trace la largeur de quelque chose en utilisant la matrice théorique:

var matrix:Matrix = new Matrix(); 
var scaleFactor:Number = 2; 
matrix.scale(scaleFactor, scaleFactor); 
//need to trace an object's width assuming the matrix would be applied to it, without actually applying it here. 

Répondre

1

Qu'est-ce que vous faites, il peut être fait en utilisant scaleX et scaleY plus facilement comme ceci:

thing.scaleX = thing.scaleY = 2; 

Il n'y a aucun avantage réel (que je puisse penser) à l'aide d'une matrice pour obtenir des résultats comme ci-dessus; il y a des fonctionnalités plus simples intégrées dans DisplayObjects eux-mêmes. La seule fois où j'utiliserais vraiment une matrice pour changer la forme d'un objet serait de l'incliner ou de le cisailler. Cela dit, les matrices sont extrêmement utiles en tant que paramètre de BitmapData.draw() pour manipuler les graphiques de résultat - j'utilise Matrix.translate() ici un peu.

Je regarde cela comme il est tout à fait clair:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Matrix.html

+0

Merci - oui - j'examiné la documentation flash. Je suppose que pour une raison quelconque, je pensais que les matrices étaient nécessaires pour anticiper les dimensions futures des choses, ou les dimensions non modifiées des choses, ou quelque chose comme ça. Mais tout ce qu'ils sont vraiment est une façon groupée de faire autrement des transformations individuelles à un objet? – mheavers

+0

Ouais; cela et ils permettent des transformations beaucoup plus complexes. – Marty