0
var menuButton:Array = new Array(3);    //the overarching menu buttons, these lead to a submenu

        for (i = 0; i <= 3; i++)
        {
            menuButton[i] = new BattleActionButton();   //creates the button

            menuButton[i].buttonID = i;
            if (i != 0) //if there is a previous button then it positions itself under it
            {
                menuButton[i].y = menuButton[i - 1].y + menuButton[i - 1].height;
            }
            else    //otherwise it positions itself under the lowest friendlyFrame
            {
                menuButton[i].y = friendlyFrame[4].y + friendlyFrame[4].height;
            }

            menuButton[i].addEventListener(MouseEvent.CLICK, addSubMenu);

            stage.addChild(menuButton[i]);
        }

これらのボタンにプロパティを追加して、後で EventListener を使用して識別できるようにしようとしていますが、このエラーが発生し続けます。

ReferenceError: エラー #1056: BattleActionButton にプロパティ buttonID を作成できません。

Main/createBattleGUI() で

Main() で

どんな助けでも大歓迎です。

4

1 に答える 1

2

MovieClip は動的クラスであるため、buttonID プロパティを通常の MovieClip に追加できます。クラスを動的にすると、上記のコードは機能しますが、これは理想的ではないことに注意してください。単純なシナリオでは問題なく使用できますが、大規模なパフォーマンスに影響を与えます。

公開の buttonID プロパティを BattleActionButton に追加するか、buttonID の getter/setter を使用して非公開のプロパティを追加することをお勧めします。

于 2013-05-24T15:03:05.907 に答える