0

下面是一张图片,解释了我所拥有的:
描述图像

棕色方块是我添加的 Sprite 的本地来源。(我无法更改图形!)

如何获得 Flash AS3 中两点之间的 X 和 Y 距离?或者我如何以编程方式将原点移动到左上角?

4

1 回答 1

1

只需使用getBounds(),它包含您需要的一切。

一个例子 :

package
{
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.geom.Point;

    public class TestSquare extends Sprite
    {
        public function TestSquare()
        {
            var squareMc : Sprite = new Sprite;

            squareMc.graphics.lineStyle(5);
            squareMc.graphics.beginFill(0xFFAAAA);
            squareMc.graphics.drawRect(-20,-20,100,100);
            squareMc.graphics.endFill();
            addChild(squareMc);

            squareMc.addEventListener(MouseEvent.CLICK, onClick);
        }

        protected function onClick(event:MouseEvent):void
        {
            // Cancel offset
            var squareMc : DisplayObject = event.target as DisplayObject;
            squareMc.x = -getTopLeftOffset(squareMc).x;
            squareMc.y = -getTopLeftOffset(squareMc).y;
        }

        // return top left offset
        public function getTopLeftOffset(target : DisplayObject) : Point
        {
            return target.getBounds(target).topLeft
        }
    }
}
于 2013-10-02T12:17:17.053 回答