3

我像这样使用谷歌转换的 swiffy 脚本

var stage = new swiffy.Stage(document.getElementById('swiffycontainer'),swiffyobject);
stage.start();

我的意思是我想在动画结束后做这个动作。但我不知道如何跟踪 swiffy 对象上的框架。

这是我问之前的工作

  • 我在页面加载后放置了启动方法

    $(文档).ready

    $(窗口).load

    窗口.onload =

并跟踪时间(随机测试到达最后一帧)

setTimeout(callAtEnd(),10000);

结果:不工作;喜欢它计算页面渲染的时间,而不是完成渲染后的时间

  • 让它启动方法并将 setTimeout 加载(应在完成 rander 后计数

结果:也不行

请帮助或提供其他解决方案。

非常感谢。

4

2 回答 2

4

$(document).ready()将在 DOM 准备好时触发,但在浏览器完成加载所有外部资源之前。

window.onload当浏览器完成加载所有外部资源时将触发。但是,可能仍有其他操作正在异步执行。

这些都不会为您提供与快速时间线相关的 100% 准确时间。

您需要做的是添加一些将在动画完成时触发的 ActionScript。由于 Swiffy 只支持 Actionscript 的一个子集,最简单的方法是让您的 Flash 使用该函数调用一个 Javascript 函数getURL(),例如:

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

这样,Swiffy 可以直接调用您的完成处理程序,而无需任何时间页面加载。

请参阅是否有任何方法可以检测 Swiffy 动画何时完成?

于 2013-09-20T15:52:47.450 回答
3

您可以通过两种方式调用它:

document.onload=function() {}

window.onload = function() {}

最好使用 document.onload,因为它将内容结构与代码分开,但这完全取决于您拥有的 javascript 数量。

如果你想使用 jQuery,它的:

$(document).ready() {}
于 2013-09-20T15:55:10.720 回答