0

我有一门课,可以从一个集中的位置控制我的所有按钮。这些按钮在加载时被推入一个数组,并且 for 循环将 MouseEvent.CLICK 事件侦听器添加到数组中的所有按钮。

现在我的问题来自与此事件侦听器相关的函数。我创建了一个 switch 语句

function btnclick(e:MouseEvent):void
    {
        switch (e.currentTarget)
        {
            case Profile_btn_63 :
                removearrayreference(this);
                e.currentTarget.parent.gotoAndStop("profile");
                break;

        }
    }

但问题是当我测试游戏时它指出 Profile_btn_63 未定义。这实际上在一开始(第一帧)是正确的,因为按钮尚未添加到按钮数组中,也没有在其上放置事件侦听器。因此,为了达到这一点,我需要帮助让 flash 忽略 Profile_btn_63 是未定义的,直到它最终被定义。

最后,这可能有点跑题了,但有谁知道为什么 _63 在 Profile_btn 被推入我的按钮数组时被添加到它的末尾?

4

1 回答 1

0

如果您将有一个“神奇的 switch 语句”来完成程序中的所有事情——这在不止一个方面是一个可怕的想法,但那是另一回事——那么你应该case根据实例名称做出决定:switch( e.currentTarget.name )

虽然按钮实例可能是nullor undefined,但常量 String 绝不是。

于 2012-07-08T07:45:51.733 回答