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()

在主要()

任何帮助表示赞赏。

4

1 回答 1

2

您可以将 buttonID 属性添加到常规 MovieClip,因为 MovieClip 是一个动态类。如果你让你的类动态化,上面的代码就可以工作,但值得注意的是,这并不理想。对于一个简单的场景,您可以侥幸逃脱,但它会在更大范围内影响性能。

我建议将公共 buttonID 属性添加到您的 BattleActionButton 或使用 buttonID getter/setter 的私有属性。

于 2013-05-24T15:03:05.907 回答