我的一个朋友希望在第1帧中有一些基于导航的mc链接,然后导航到某个帧,然后有一个“后退”按钮。单击nav mc链接时,时间轴将跳至给定的帧标签 很简单。
大多数链接中都包含相同的导航mc,因此当我导航到它们时,我还可以通过以下方式访问任何其他帧:
linkg.Contact_btn.addEventListener(MouseEvent.CLICK,Contact_btn_clicked);
function Contact_btn_clicked(e:MouseEvent):void{
gotoAndStop("ContactPage");
}
上面的代码位于第一帧中,它位于自己的图层上,跨越项目中的整个框架,所以我认为这些函数定义会持续存在。但是,当我转到一个没有导航mc的特定链接,然后点击该特定帧的“后退”按钮时,即使现在存在导航mc链接,我的所有功能定义也都消失了,正如我所提到的,听众应该是活跃的。
我想知道是否有人之前曾经历过这种行为,或者我能做些什么。
谢谢, JML
答案 0 :(得分:1)
这不是你的函数声明已经消失,而是指向首次调用声明时设置的按钮的指针。
当您跳转到不包含先前设置的实例的帧时,该实例将从舞台中删除,并且所有侦听器现在都指向不再存在的对象。如果您在另一个框架中添加同名实例,则这些侦听器未设置,即使侦听器功能仍在那里并且正常工作。
所以你必须致电
linkg.Contact_btn.addEventListener(MouseEvent.CLICK,Contact_btn_clicked);
再次确保新按钮也能正确响应点击事件。
另一种可能性是将相同的按钮添加到FLA的每一帧,但在不需要时切换到visible = false;
(当然,当它是true
时)。