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

È stato utile?

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)) );
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top