Swiffy动画会在完成后触发事件吗?或者有没有办法获取当前帧与总帧数?
我尝试去除另一个SO帖子中提到的runtime.js,但我无法破译它。
答案 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函数。