Come arrivare angolo visivo (ad es. TopLeft) di ruotato DisplayObject in ActionScript 3?
-
19-09-2019 - |
Domanda
Quando la rotazione di un oggetto di visualizzazione (attorno al suo centro) l'angolo visuale dei elemento si muove (x reale e y della "scatola" rimane lo stesso). Ad esempio con 45 gradi di rotazione della coordinata x sarà aumentata e la coordinata y sarà diminuito l'angolo superiore sinistro è ora al centro superiore della "scatola".
Ho provato ad utilizzare displayObject.getBounds (coordinateSpace) .topLeft tuttavia questo metodo è semplicemente tornando x ed y della scatola e quindi non cambia dopo che un oggetto è stato ruotato.
Quindi, come si fa a ottenere il x e y di un visiva angolo di un oggetto di visualizzazione ruotato?
Aggiornamento: questo è ciò che intendo con la posizione di un angolo visivo dopo la rotazione -> alt text http://feedpostal.com/cornerExample.gif
Soluzione
Hai semplicemente bisogno di tradurre il punto di spazio di coordinate del suo elemento principale.
var box:Shape = new Shape();
box.graphics.beginFill(0xff0099);
box.graphics.drawRect(-50, -50, 100, 100); // ... the center of the rectangle being at the middle of the Shape
addChild(box);
box.x = 100; // note: should be 100 + box.width * .5 in case you want to use the topleft corner to position
box.y = 100;
box.rotation = 45;
// traces the result (Point)
trace( box.parent.globalToLocal(box.localToGlobal(box.getBounds(box).topLeft)) );