当我离开某个帧时,Actionscript停止运行

时间:2011-04-17 20:00:26

标签: flash actionscript-3

我的一个朋友希望在第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

1 个答案:

答案 0 :(得分:1)

这不是你的函数声明已经消失,而是指向首次调用声明时设置的按钮的指针。

当您跳转到不包含先前设置的实例的帧时,该实例将从舞台中删除,并且所有侦听器现在都指向不再存在的对象。如果您在另一个框架中添加同名实例,则这些侦听器未设置,即使侦听器功能仍在那里并且正常工作。

所以你必须致电

linkg.Contact_btn.addEventListener(MouseEvent.CLICK,Contact_btn_clicked);

再次确保新按钮也能正确响应点击事件。

另一种可能性是将相同的按钮添加到FLA的每一帧,但在不需要时切换到visible = false;(当然,当它是true时)。