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

5
< p > Swiffy动画是否在完成后触发事件?或者有没有一种方法可以获取当前帧与总帧数?

< p > 我尝试像另一个Stack Overflow帖子中提到的那样对runtime.js进行去压缩处理,但我无法解密它。

3个回答

6

对于任何阅读这篇文章的人,我找到了一个解决方案。最终我在FLA的结尾处使用了getURL()调用。代码如下:

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

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

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);
 }

0
如果有人碰巧遇到這個問題並且正在使用ActionScript 3,頂部的答案對他們將不起作用,因為getURL()函數僅適用於ActionScript 2和早期版本。
請使用以下代碼 ActionScript 3:
navigateToURL(new URLRequest("javascript:your_function()"), "_self");

将其作为 Flash 动画的最后一帧的操作添加,然后使用 Swiffy 进行转换。然后,您可以获取 Swiffy 的输出并将其嵌入网页中。只需确保在显示 Swiffy 动画的页面源代码中定义 JavaScript 函数即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接