0

メイン タイムラインに手動で追加した「btnExit」という名前のインスタンスがある場合、その名前を入力するだけでドキュメント クラスから参照できます。

package{
    public class Engine extends MovieClip{

        public function Engine(){
            trace(btnExit.x);
        }
    }
}

しかし、別のムービークリップにネストされたインスタンスがあり、(ドキュメント クラスではなく) クラスからアクセスしたいと考えています。

ライブラリに「メニュー」ムービークリップがあるとします。

次に、「ButtonExit」ボタンを「Menu」ムービークリップのタイムラインに手動でドラッグし、インスタンスに「btnExit」という名前を付けたので、「btnExit」は「Menu」ムービークリップの子です。

「メニュー」ムービークリップは、コードによってメイン タイムラインに動的に追加されます。

「Menu」クラスファイルから「btnExit」にアクセスしたいので、これらのコードを書きます。

ドキュメント クラス:

package{
    public class Engine extends MovieClip{

        public var menu:Menu;

        public function Engine(){
            menu = new Menu();
            addChild(menu);
        }
    }
}

他のクラス:

package{
    public class Menu extends MovieClip{

        public function Menu(){
            trace(btnExit.x);
        }
    }
}

しかし、btnExit にアクセスできないというエラー #1009 (null object reference) が発生しました。

誰か助けてくれませんか?

4

1 に答える 1

1

ButtonExitのインスタンスがメニュータイムラインのすべてのフレームに存在し、すべてのフレームに適切な名前が付けられていることを確認するか、ボタンが現在正しいフレームにある場合にのみコードを実行するifステートメントを記述します。

メニュークリップがアニメーション化されるたびに、フレーム上のすべてが再インスタンス化されるため、2番目/3番目/4番目などのフレームにbtnExitという名前のクリップがない場合、コンストラクターがそのフレームに対して呼び出されるとエラーがスローされます。 。

于 2013-03-15T19:29:00.943 に答える