我有这个数组和这些事件处理程序:
var btnArr:Array = new Array(aBtn, bBtn, cBtn);
aBtn.addEventListener(MouseEvent.MOUSE_OVER, blah);
bBtn.addEventListener(MouseEvent.MOUSE_OVER, blah);
cBtn.addEventListener(MouseEvent.MOUSE_OVER, blah);
其中aBtn,bBtn和cBtn是MovieClip对象。
当我尝试在事件期间获取其中一个的索引时:
function blah(e:Event) {
var i = btnArr.indexOf(e.target);
trace(i)
那么为什么这个跟踪每次都会返回undefined
?
答案 0 :(得分:1)
使用e.currentTarget,e.target可能是一些孩子。或者像托比亚斯说的那样 - 将mouseChildren设置为false
答案 1 :(得分:0)
您在哪里初始化按钮?您是否尝试跟踪MovieClip名称?也许你的MovieClip有孩子正在派遣你的活动。尝试设置mouseChildren = false.
答案 2 :(得分:0)
此代码适用于我。我恭敬地得到0,1,2
所以我在这里假设你“不”给你的MovieClip按钮提供了实例名称aBtn,bBtn,cBtn
哪个是未定义的。
虽然,它应该抛出编译时错误
并且请学习输入你所有的变量,它们只会帮助你从长远来看。
var i:int = btnArr.indexOf(e.target);
答案 3 :(得分:0)
如果找不到元素,则数组的indexOf应该返回-1。
由于您未定义,您确定btnArr是您之前创建的数组吗?