不允许我向MovieClip添加属性?

时间:2013-05-24 14:56:53

标签: actionscript-3 actionscript properties movieclip

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

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

我建议您向BattleActionButton添加公共buttonID属性,或者使用buttonID getter / setter添加私有属性。