我有一个班级来控制集中位置的所有按钮。按钮在加载时被推入数组,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的末尾,当它被推入我的按钮数组?
答案 0 :(得分:0)
如果你要有一个“魔术开关语句”来完成程序中的所有操作 - 这不是一种可怕的想法,但这是另一回事 - 那么你应该制作{{1}基于实例名称的决策:case
虽然按钮实例可能是switch( e.currentTarget.name )
或null
,但永远不会是常量字符串。