-1

ドラッグアンドドロップゲームを作っています。MouseEvent.MOUSE_UP には、次のような if ステートメントがあります。

function fnUp(event:MouseEvent):void
    {
        clicked.stopDrag();
        if (clicked.dropTarget.parent.parent.name == clicked.currentLabel)
        {
            var dropped:Card = clicked.dropTarget.parent.parent as Card;
            dropped.gotoAndStop(dropped.name);
            dropped.bg.gotoAndStop("done");
            removeChild(clicked);

        }
        else
        {
            clicked.x = clicked.sx;
            clicked.y = clicked.sy;
            clicked.bg.gotoAndStop("off");
        }
        clicked = null;
    }

「クリックされた」は、タイプ Card() の以前に宣言された var です。そして、次のように MouseEvent.MOUSE_DOWN に設定されています。

    function fnDown(event:MouseEvent):void
    {
        clicked = event.currentTarget as Card;
        clicked.bg.gotoAndStop("on");
        clicked.startDrag();
        addChild(clicked);
    }

このように if ステートメントを作成すると、カードが 3 種類のターゲット カードのいずれか以外の場所にドロップされてもエラーは発生しないと考えました。しかし、私はまだ得る:

TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。

tldr; 3 つのターゲットのいずれかの外にカードをドロップすると、エラーが発生します。

4

1 に答える 1

1

どの行でエラーが発生しますか? 次のオブジェクトがすべて存在するかどうかを確認する必要があります。

if (clicked.dropTarget &&
clicked.dropTarget.parent &&
clicked.dropTarget.parent.parent )
{
    then do something...
}
于 2012-05-29T15:50:01.543 に答える