Flash CC - HTML5 Canvas:幻灯片导航

时间:2015-01-06 17:59:29

标签: javascript html5 flash canvas easeljs

我正在尝试使用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);
}

我要发布它并且下一个按钮有效,但有时会出错。后退按钮有时可以工作,有时则不工作。它最常见的做法是在点击时返回随机帧。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我整理了一个快速样本,得到了类似的结果。对我来说,问题是脚本所在的框架会在你进入那个框架时触发。这意味着按钮上的听众会堆积起来,并多次开火。

理想的解决方案是将代码从FLA中提取出来,并放入HTML / JS应用程序中。您可以使用实例名称直接定位时间轴。例如,在我的应用程序中,它全部在主时间轴上,因此您可以使用:

exportRoot.next_btn.addEventListener("click", handler);

要在不重新构建的情况下解决问题,您也可以确保:

  1. 您的脚本框架永远不会导航到。你可以先制作你的第一个"框架2帧长,并将代码放在第1帧,stop()放在第2帧。然后只需确保你从不gotoAndStop在1.你必须对前一个和下一个加上限制,因为你可以gotoAndStop在比最大值更高的帧,它将包裹。
  2. 每帧删除所有事件侦听器。使用bind设置监听器的方式对于删除是有问题的,所以我建议只删除所有监听器。
  3. 我上传了一个使用第二种方法的快速示例[https://dl.dropboxusercontent.com/u/2224806/Nav.fla],主要是因为它很容易修复。 抱歉,链接已过期

    如果这可以解决您的问题,或者是否与其他问题有关,请告诉我。