0

私はより大きなプロジェクトを持っていますが、問題を次の例に絞り込むことができます:

public function Main() 
    {
        var myContainer:Sprite = new Sprite;
        myContainer.graphics.beginFill(0xFFFFFF);
        myContainer.graphics.lineStyle(1);
        myContainer.graphics.drawRect(10, 10, 300, 300);
        myContainer.graphics.endFill();
        addChild(myContainer);
        trace('Container coords: ' + myContainer.x + ' ' + myContainer.y);
        trace('Instance coords: ' + getChildAt(numChildren - 1).x + ' ' + getChildAt(numChildren - 1).y);
        var spr:Sprite = new Sprite;
        spr.graphics.beginFill(0xFF0000);
        spr.graphics.lineStyle(1);
        spr.graphics.drawCircle(30, 30, 10);
        spr.graphics.endFill();
        myContainer.addChild(spr);
        trace('Child coords: ' + spr.x + ' ' + spr.y);
        trace('Child instance coords: ' + myContainer.getChildAt(myContainer.numChildren - 1).x + ' ' + myContainer.getChildAt(myContainer.numChildren - 1).y);
    }

出力は次のとおりです。

Container coords: 0 0
Instance coords: 0 0
Child coords: 0 0
Child instance coords: 0 0

誰かがスプライト内の子スプライトの実際の座標を取得する方法を説明できますか?

4

2 に答える 2

0

myContainerx、yを設定していません。グラフィック描画座標 (10,10) のみが設定されています。spr逆。

次のコードを参照してください。このコードは多少異なりますが、視覚的な出力は同じです。親の座標を 10 に設定します。描画座標セット (0,0)。したがって、myContainer x,y は 10 であり、少し間違っていると思います。getChildAt(numChildren-1)ですmyContainer。このコーディネートも同じです。myContainer には子がありません。graphics子概念ではありません。さらに、子座標は親からの相対座標です。

var myContainer:Sprite = new Sprite;
myContainer.x = 10;
myContainer.y = 10;
myContainer.graphics.beginFill(0xFFFFFF);
myContainer.graphics.lineStyle(1);
myContainer.graphics.drawRect(0, 0, 300, 300);
myContainer.graphics.endFill();
addChild(myContainer);

//myContainer.x = 10, myContainer.y=10
//getChildAt(numChildren - 1).x = 10, getChildAt(numChildren - 1).y = 10

次のようにあなたのコード:

ここに画像の説明を入力

次のように私のコード:

ここに画像の説明を入力

于 2013-02-27T16:16:41.453 に答える
0

これを試して!

var point:Point = new Point(spr.x, spr.y);
point = localToGlobal(point);
trace('Child coords: ' + point);
于 2013-02-27T16:32:40.003 に答える