我正在尝试使用 HTML5 Canvas 在 Flash CC 中创建一个带有下一个和后退按钮的简单 3 图像幻灯片。我是 JavaScript 新手,似乎在运行时遇到问题。
this.stop();
this.next_btn.addEventListener("click", playClickNext.bind(this));
function playClickNext()
{
this.gotoAndStop(this.currentFrame + 1);
}
this.back_btn.addEventListener("click", playClickBack.bind(this));
function playClickBack()
{
this.gotoAndStop(this.currentFrame - 1);
}
我正在发布它,下一个按钮可以工作,但有时会转到错误的框架。后退按钮有时有效,有时无效。它所做的最常见的事情也是在单击时返回到随机帧。
感谢您的帮助!
最佳答案
我整理了一个快速样本,并得到了类似的结果。对我来说,问题是只要您转到该帧,脚本所在的帧就会触发。这意味着按钮上的监听器会堆积起来,并多次触发。
理想的解决方案是将代码从 FLA 中提取出来,并放入您的 HTML/JS 应用程序中。您可以使用实例名称直接定位时间线。例如,在我的应用程序中,它都在主时间轴上,因此您可以使用:
exportRoot.next_btn.addEventListener("click", handler);
要在不重新架构的情况下解决该问题,您还可以确保:
- 您的脚本框架永远不会被导航到。您可以将“第一”帧设置为 2 帧长,并将代码放在第 1 帧上,将
stop()
放在第 2 帧上。然后只需确保永远不会 gotoAndStop 到 1 上。您必须将对上一个和下一个的限制,因为您可以在比最大值更高的帧处 gotoAndStop,并且它会换行。 - 每帧删除所有事件监听器。使用绑定(bind)设置监听器的方式对于删除来说是有问题的,因此我建议仅删除所有监听器。
我在这里上传了一个快速示例[ https://dl.dropboxusercontent.com/u/2224806/Nav.fla ] 使用第二种方法,主要是因为它很容易修复。 抱歉,链接已过期
请告诉我这是否解决了您的问题,或者它是否与其他问题相关。
关于javascript - Flash CC - HTML5 Canvas : Slideshow Navigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804407/