0

はい、この質問が常に聞かれることは知っていますが、経験が浅いため、答えを見つけることができませんでした。ボタンがクリックされた場合、画面からオブジェクトを削除しようとしているだけです-

    public function but1click(evtObj:MouseEvent)
    {
        trace("button one clicked");
        if (gracestate == "grace")
        {
            removeChild(grace);
        trace("grace removed");
                }
    }

オブジェクトの親 (grace) をトレースしたところ、null として返されました。これは私を夢中にさせています。助けていただければ幸いです。

4

1 に答える 1

0

質問は不明ですが、最も可能性の高い問題は、ガベージコレクション/削除されている値をグレースに保存しているようです。

関数内に変数を作成しても、その変数への参照が関数の外に存在しない場合、GC されます。基本的に、他の何かによって参照されていないものはすべて削除されます。これが当てはまらない唯一のオブジェクトはタイムラインです。これにより、Flash Player の遅延が停止し、RAM がいっぱいになったときのエラーが回避されます。したがって:

    function createGrace () {
      var grace = new Object();
      addChild(grace);
    }
    trace (grace); // returns null

    var grace:Object;
    function createGrace () {
      grace = new Object();
      addChild(grace);
    }
    trace (grace); // returns [Object]
于 2013-04-24T23:19:07.357 に答える