0

そのため、「confirmbutton」という名前のインスタンスを持つ「LoginScreen」という名前のムービークリップがあります。

LoginScreen をステージに追加し、その中のボタンにイベント リスナーを設定したいのですが、エラーが発生し続けます。

これは私のコードです:

var LoginScreen:loginscreen = new loginscreen;
LoginScreen.x = stage.stageWidth / 2;
LoginScreen.y = stage.stageHeight / 2;
addChild(LoginScreen);

LoginScreen.confirmbutton.addEventListener(MouseEvent.CLICK, test);

function test(e:MouseEvent):void{
    trace("Sup?");
}

エラーが発生します:

Symbol 'LoginScreen'    1046: Type was not found or was not a compile-time constant: confirmbutton.

私はそれが存在し、適切に名前が付けられていると確信しています(大文字のない正確な名前を持っています)ので、おそらくスコープの問題であると推測しています。

4

2 に答える 2

0

理解した。ボタンの名前を「confirmButton」(大文字の「B」)に変更し、動作を開始しました。問題は、「確認ボタン」がムービークリップの AS リンケージでもあったことだと思います。

于 2012-08-08T10:47:51.870 に答える
0

内側の MovieClip を取得するには、ヘルパー ゲッター関数を使用してみてください。したがって、LoginScreen クラスを定義した場所には、次のような単純な getter 関数を配置します。

public function get ConfirmButton():MovieClip { return this.getChildByName("confirmButton") as MovieClip; }

次に、次のように LoginScreen オブジェクトからその MovieClip にアクセスできます。

LoginScreen.ConfirmButton.addEventListener(MouseEvent.CLICK, test);
于 2012-08-08T10:51:25.813 に答える