代码之家  ›  专栏  ›  技术社区  ›  Chris

操作脚本3时间线访问不工作

  •  2
  • Chris  · 技术社区  · 16 年前

    在一个非常简单的闪存文件的第1帧中,我有以下代码:

    stop();
    this.addEventListener(MouseEvent.CLICK, function(e) { gotoAndStop(5); });
    gotoAndStop(10);
    

    当我运行flash文件时,我希望它会自动转到第5帧。( 我们认为他是指第10帧 ,但事实并非如此。但是,单击任何位置都会导致它跳到第5帧。问题是,为什么goToAndStop在事件处理程序内工作,而不是在主时间线上工作?

    此外,如果我在任何其他帧上放置完全相同的代码,GoToAndStop将在该帧中激发,而无需单击。GoToAndStop似乎只在第1帧上工作失败。

    编辑/回答 :这个答案真的很愚蠢,但我会把它放在这里,以防将来有人遇到它。最终得到的闪存文件是500K,它足够大,甚至在本地也足够大,以便在文件完全加载之前触发gotoandstop命令。因此,它不可能转到第5帧或第10帧,因为它们还不存在。

    我知道我必须加入一个预加载程序,但它是最后一个要做的事情,显然,它回来咬我的屁股。我把gotoandstop添加到一个event.complete处理程序中,它工作得很好。问题解决了。

    3 回复  |  直到 16 年前
        1
  •  0
  •   Iain    16 年前

    可能是你没有第10帧?

        2
  •  0
  •   Iain    16 年前

    你可以试着把所有的东西都移到一帧上吗?所以不要在第1帧上放置任何代码,从第2帧开始。

    如果您真的想要更好地控制Flash,我建议在外部类文件中进行编码。

        3
  •  0
  •   Tahir Ahmed    16 年前

    对于我来说,在将上述代码复制并粘贴到空白闪存文件中之后,单击根本不起作用,但“goToandStop(10)”起作用。但是,当我将Click Listener分配给“Stage”而不是“this”时,单击开始工作。

    我使用的代码如下:

    • 停止();
    • stage.addEventListener(mouseEvent.click,函数(e)转到顶部(5););
    • GoToAndStop(10个);

    但是,由于您在第三行(即GoToandStop(10))中遇到问题,并且单击时没有遇到问题,因此您可能需要尝试此操作。

    • 停止();
    • var参考:movieclip=此为movieclip;
    • reference.addEventListener(mouseEvent.click,函数(e)reference.goToAndStop(5););
    • 参考文献GoToAndStop(10);

    Tahir。