javascript:页面加载后执行该功能的最佳方式

时间:2013-09-20 15:42:13

标签: javascript jquery google-swiffy

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

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

我的观点是我想在动画结束后做动作。 但我不知道如何在swiffy对象上跟踪帧。

这是我的工作之前

  • 我在

    加载页面后放入start方法

    (文档)$。就绪

    $(窗口).load

    window.onload =

并使用

跟踪时间(到达最后一帧的随机测试)
setTimeout(callAtEnd(),10000);

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

  • 让它启动方法并将setTimeout置于加载状态(应在完成rander之后计算

结果:无法正常工作

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

非常感谢。

2 个答案:

答案 0 :(得分:4)

当DOM准备就绪,但在浏览器加载完所有外部资源之前,

$(document).ready()将会触发。

当浏览器加载完所有外部资源时,

window.onload将会触发。但是,可能仍有其他操作异步执行。

这些都不会给你一个与swiffy时间线相关的100%准确的时间。

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

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

这样,Swiffy可以直接调用你的完成处理程序,而不需要定时页面加载。

请参阅Is there any way to detect when a Swiffy animation has completed?

答案 1 :(得分:3)

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

document.onload=function() {}

window.onload = function() {}

最好使用的是document.onload,因为它将内容结构与代码分开,但这一切都取决于你拥有的javascript。

如果你想使用jQuery:

$(document).ready() {}