有没有办法检测Swiffy动画何时完成?

时间:2012-07-06 17:05:49

标签: javascript javascript-events flash google-swiffy

Swiffy动画会在完成后触发事件吗?或者有没有办法获取当前帧与总帧数?

我尝试去除另一个SO帖子中提到的runtime.js,但我无法破译它。

3 个答案:

答案 0 :(得分:6)

对于遇到这篇文章的人,我找到了解决方案。我最终在FLA结束时使用了getURL()调用。它看起来像这样:

getURL("javascript:animationIsComplete();");

在animationIsComplete()函数中放置您想要的任何内容,现在将在Swiffy动画结束时触发。

答案 1 :(得分:2)

Flash时间轴框架脚本:

   import flash.net.navigateToURL;
   import flash.net.URLRequest;

   navigateToURL(new URLRequest("javascript:document.dispatchEvent(new CustomEvent('animation_done', {detail:{name:'sparkle'}}))"), "_self");
   stop();

使用Javascript:

 document.addEventListener("animation_done", animationDone, false);

 function animationDone(e /* Event */){
     console.log('animation done ' + e.detail.name);
 }

答案 2 :(得分:0)

如果其他人偶然发现了这个问题并且正在使用ActionScript 3 - 最常见的答案对他们不起作用,因为getURL()函数仅在ActionScript 2及更早版本中可用。

对ActionScript 3使用以下内容:

navigateToURL(new URLRequest("javascript:your_function()"), "_self");

将其作为动作添加到Flash中动画的最终帧中,然后使用Swiffy进行转换。然后,您可以从Swiffy获取输出并将其用于网页。只需确保在显示Swiffy动画的页面源中的某处定义JavaScript函数。