开发者

How to get visual corner (eg. topLeft) of rotated displayObject in actionscript 3?

When rotating a display object (around its center) the visual corner of the element moves (the actual x and y of the "box" remains the same). For example with 45 degrees of rotation the x coordinate will have increased and the y coordinate will have decreased as the top left corner is now at the top center of the "box".

I've tried to use displayObject.getBounds(coordinateSpace).topLeft however this开发者_Python百科 method is simply returning the x and y of the box and thus doesn't change after an object has been rotated.

So, how do you get the x and y of a visual corner of a rotated display object?

Update: this is what I mean with the position of a visual corner after rotation --> alt text http://feedpostal.com/cornerExample.gif


You simply need to translate the point to its parent's coordinate space.

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)) );
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜