Swiffy 动画完成后会触发事件吗?或者有没有办法获取当前帧与总帧?
如另一篇 Stack Overflow 帖子中所述,我尝试对 runtime.js 进行去最小化,但我无法破译它。
Swiffy 动画完成后会触发事件吗?或者有没有办法获取当前帧与总帧?
如另一篇 Stack Overflow 帖子中所述,我尝试对 runtime.js 进行去最小化,但我无法破译它。
对于遇到此帖子的任何人,我都找到了解决方案。我最终在我的 FLA 结束时使用了 getURL() 调用。它看起来像这样:
getURL("javascript:animationIsComplete();");
将您想要的任何内容放入 animationIsComplete() 函数中,现在它将在 Swiffy 动画结束时触发。
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);
}
万一其他人偶然发现了这个问题并且正在使用 ActionScript 3 - 最佳答案对他们不起作用,因为 getURL() 函数仅在 ActionScript 2 和更早版本中可用。
对 ActionScript 3 使用以下内容:
navigateToURL(new URLRequest("javascript:your_function()"), "_self");
将其作为动作添加到 Flash 中动画的最后一帧,然后使用 Swiffy 进行转换。然后,您可以从 Swiffy 获取输出并将其处理到网页中。只需确保在显示 Swiffy 动画的页面源中的某处定义 JavaScript 函数即可。