Actionscript 3 Flash AS3按钮事件侦听器阵列错误
这是我第一次在这里发帖 我在一个时间线上有一个12个按钮的数组,当第一次访问时间线的这一部分时,可以使用for循环将CLICK eventlistener添加到其中。在这一点上,它们都能完美地工作 当您单击其中一个按钮时,它会在特定的movieClip内播放一个帧标签,并通过关闭按钮在相应的人身上显示一个bio,并删除每个按钮的click eventlisteners,再次使用for循环。“关闭”按钮播放关闭动画,然后时间线返回到第一帧(上面有12个按钮的帧),并重新添加CLICK eventlisteners,但现在只有数组的前9个按钮可以工作。没有输出错误,重新添加eventlisteners的代码与第一次完全相同。我完全不知所措,不知道是否还有其他人遇到过这个问题 我所有的按钮都命名正确,绝对没有输出错误(我使用了调试模块),并且我确保在单击关闭按钮以重新添加eventlisteners时,包含按钮的数组正在输出所有12个按钮Actionscript 3 Flash AS3按钮事件侦听器阵列错误,actionscript-3,arrays,button,for-loop,event-listener,Actionscript 3,Arrays,Button,For Loop,Event Listener,这是我第一次在这里发帖 我在一个时间线上有一个12个按钮的数组,当第一次访问时间线的这一部分时,可以使用for循环将CLICK eventlistener添加到其中。在这一点上,它们都能完美地工作 当您单击其中一个按钮时,它会在特定的movieClip内播放一个帧标签,并通过关闭按钮在相应的人身上显示一个bio,并删除每个按钮的click eventlisteners,再次使用for循环。“关闭”按钮播放关闭动画,然后时间线返回到第一帧(上面有12个按钮的帧),并重新添加CLICK eventl
for (var q = 0; q < ackBoDBtnArray.length; q++){
contentArea_mc.acknowledgements_mc.BoD_mc[ackBoDBtnArray[q]].addEventListener(MouseEvent.CLICK, showBio);
}
private function showBio(eo:MouseEvent):void {
trace("show the bio");
bodVar = ackBoDBtnArray.getIndex(eo.target.name);
contentArea_mc.acknowledgements_mc.BoD_mc.gotoAndPlay(ackBoDPgArray[bodVar]);
contentArea_mc.acknowledgements_mc.BoD_mc.closeBio_btn.addEventListener(MouseEvent.CLICK, hideBio);
for (var r = 0; r < ackBoDBtnArray.length; r++){
contentArea_mc.acknowledgements_mc.BoD_mc[ackBoDBtnArray[r]].mouseEnabled = false;
contentArea_mc.acknowledgements_mc.BoD_mc[ackBoDBtnArray[r]].removeEventListener(MouseEvent.CLICK, showBio);
}
}
private function hideBio(eo:MouseEvent):void {
trace("hide it!");
contentArea_mc.acknowledgements_mc.BoD_mc.closeBio_btn.removeEventListener(MouseEvent.CLICK, hideBio);
contentArea_mc.acknowledgements_mc.BoD_mc.gotoAndPlay(ackBoDClosePgArray[bodVar]);
for (var s = 0; s < ackBoDBtnArray.length; s++){
trace(ackBoDBtnArray[s]);
contentArea_mc.acknowledgements_mc.BoD_mc[ackBoDBtnArray[s]].mouseEnabled = true;
contentArea_mc.acknowledgements_mc.BoD_mc[ackBoDBtnArray[s]].addEventListener(MouseEvent.CLICK, showBio);
}
for(var q=0;q
提前感谢您提供的任何帮助和见解…我有一种轻微的感觉,这对另一组眼睛来说可能是显而易见的…哈哈。我觉得可疑的是,您正在从hideBio()开头的closeBio_btn中删除事件侦听器。请尝试将该行放在for循环之后 我很难为这个预感辩护,但我脑海中闪过的几个疯狂的理论是:
这是一个有趣的问题,我希望您能找到解决方案:)我觉得可疑的是,您正在从hideBio()开头的closeBio_btn中删除事件侦听器。请尝试将该行放在for循环之后 我很难为这个预感辩护,但我脑海中闪过的几个疯狂的理论是:
这是一个有趣的问题,我希望你能找到一个解决方案:)似乎可以解决它,我不得不动态添加每个btn,而不是将它们放在时间线上。尽管如此,还是很奇怪,谢谢大家。似乎可以解决它,我不得不动态添加每个btn,而不是将它们放在时间线上。尽管如此,还是很奇怪,比ks everyone在最后三个方面,调试跟踪中看到了什么?您导出的闪存版本是什么?如果您正在访问刚启动并停止的帧上的某个对象。该对象可能无法访问。但应在运行时发生异常。如果您仅在数组中存储字符串。请尝试跟踪对象。如果其中一些对象不为null(再一次..如果它们是..它应该给出运行时异常..但我没有想到其他任何东西)对于最后三个,在调试跟踪中看到了什么?您导出的闪存版本是什么?如果您访问的是刚启动并停止的帧上的内容..它可能无法访问..但是应该生成运行时异常..如果