0

私は3つの異なるボタンを持っています。ボタンの 1 つをクリックすると、stageSelect 関数がアクティブになり、ボタンの番号が出力されるはずです。

しかし、それを行うと、タイトルにエラーが表示されます。ここで何が間違っていますか?

package {
    import flash.display.MovieClip;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    import flash.ui.Mouse;

    public class MenuScreen extends MovieClip {
        public function MenuScreen() {
            Mouse.show();
            selectGrass.addEventListener(MouseEvent.CLICK, stageSelect, 1);
            selectDirt.addEventListener(MouseEvent.CLICK, stageSelect, 2);
            selectGravel.addEventListener(MouseEvent.CLICK, stageSelect, 3);
        }

        public function stageSelect(stageID:Number) {
            trace(stageID);
        }
    }
}
4

1 に答える 1

3

これは、メソッドaddEventListenerの3番目のパラメーターがuseCaptureであるためです。これには、バブリングする前にキャプチャフェーズ中にイベントを取得することを示すブール値が必要です。あなたが呼んでいる

selectGrass.addEventListener( MouseEvent.CLICK, StageSelect, 1);

代わりにあなたがする必要があるのは

selectGrass.addEventListener( MouseEvent.CLICK, grassSelected);
selectDirt.addEventListener( MouseEvent.CLICK, dirtSelected);

private function grassSelected(event:MouseEvent):void{
    // do grass stuff
}

private function dirtSelected(event:MouseEvent):void{
    // do dirt stuff
}
于 2012-11-29T15:32:09.020 に答える