【问题标题】:javascript: Best way to do the function after page loadjavascript:页面加载后执行该功能的最佳方式
【发布时间】:2013-09-20 15:42:13
【问题描述】:

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

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

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

这是我在问之前的工作

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

    $(document).ready

    $(window).load

    window.onload =

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

setTimeout(callAtEnd(),10000);

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

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

结果:也不行

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

非常感谢。

【问题讨论】:

    标签: javascript jquery google-swiffy


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 感谢您的回复,我可以询问有关代码的更多详细信息吗?所以我应该把你的帖子那样的代码(getURL)放在闪存上吧?闪光灯结束时我把动作放在哪里?是animationIsComplete对吗?谢谢。
    【解决方案2】:

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

    document.onload=function() {}
    
    window.onload = function() {}
    

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

    如果你想使用 jQuery 的话:

    $(document).ready() {}
    

    【讨论】:

    • 感谢您的评论。 window.onload 和 $(document).ready() [} 没有给出我想要的动作(加载时间问题);所以我就拿document.onload来测试一下。
    猜你喜欢
    • 1970-01-01
    • 2010-11-05
    • 2012-08-09
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多