【问题标题】:Actionscript stops functioning when I navigate away from a certain frame当我离开某个框架时,Actionscript 停止运行
【发布时间】:2011-08-07 10:52:19
【问题描述】:

我的一个朋友想要在第 1 帧中有一些基于导航的 mc 链接,然后导航到某个帧,然后有一个“返回”按钮。单击导航 mc 链接时,时间线会跳到给定的帧标签。
很简单。

大多数链接都具有相同的导航 mc,因此当我导航到它们时,我还可以通过以下方式访问任何其他框架:

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

function Contact_btn_clicked(e:MouseEvent):void{
    gotoAndStop("ContactPage");
}

上面的代码在第一帧中,它在它自己的层上,跨越了项目中的整个帧,所以我认为这些函数定义会持续存在。但是,当我转到其中没有 nav mc 的特定链接,然后点击该特定框架的“后退”按钮时,我所有的函数定义都消失了,即使现在存在 nav mc 链接,并且正如我提到的,听众应该是活跃的。

我想知道以前是否有人经历过这种行为,或者我能做些什么。

谢谢, jml

【问题讨论】:

    标签: flash actionscript-3


    【解决方案1】:

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

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

    所以你必须打电话

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

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

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

    【讨论】:

    • 非常感谢。我明天试试这个。非常感谢。
    • 我这里还有一个有点相关的问题:stackoverflow.com/questions/5697266/… 你也知道吗?如果是这样,请随时在该网址上发布... thx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多