AS3 case语句值访问未定义的属性

时间:2012-07-08 07:19:08

标签: actionscript-3

我有一个班级来控制集中位置的所有按钮。按钮在加载时被推入数组,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的末尾,当它被推入我的按钮数组?

1 个答案:

答案 0 :(得分:0)

如果你要有一个“魔术开关语句”来完成程序中的所有操作 - 这不是一种可怕的想法,但这是另一回事 - 那么你应该制作{{1}基于实例名称的决策:case

虽然按钮实例可能是switch( e.currentTarget.name )null,但永远不会是常量字符串。