- 如何获取flash对象在浏览器中加载所需的时间,从创建对象直到它处于就绪状态?
2
A
回答
4
如果你只是想测量Flash对象的加载时间,你可以使用FireBug。但是,如果您想知道Flex应用程序何时完全可以使用(即所有RSL已加载;所有初始数据都已加载),我认为有两种方法。一个在应用程序中,使用自定义预加载器开始计时并在条件满足时停止计时。其他通过JavaScript和。我认为后者会给你最准确的结果,因为在加载预加载器之前可能已经有一段延迟了。
JavaScript和ExternalInterface的
我从来没有做过这个,所以我刚要解释我的想法。在Javascript中,您可以在Flash对象开始加载时创建一个'date'对象。您可能正在使用SWFObject将Flash对象注入页面,因此您可能会将其插入某处。然后在您的Flex应用程序中,当满足必要的条件(您定义了这些条件)时,您可以使用ExternalInterface.call()来告诉JavaScript Flex应用程序已准备就绪。做一个新的'日期'并减去第一个'日期',并且你有你的加载时间。
使用ExternalInterface的更多信息可以在文档中找到:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb2.html
详细
创建JavaScript函数,我们会打电话给当应用程序已准备就绪:
function onFlexAppReady() {
var end = new Date().getTime();
var loadTime = end - start; //in ms.
}
现在在FlashBuilder生成的代码中,添加swf注入之前的开始时间:
var start = new Date().getTime();
swfobject.embedSWF(
"MyFlexApp.swf", "flashContent",
"100%", "100%",
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
最后,在你的Flex应用程序,在合适的条件得到满足,调用JavaScript函数:
ExternalInterface.call("onFlexAppReady");
再次,这是所有未经测试的代码,但它应该让你开始。
相关问题
- 1. 获取对象时未加载列表
- 2. 延迟加载Flash对象
- 3. 如何确定嵌入式Flash对象何时加载?
- 4. 获取的时间序列对象
- 5. 获取加载时间的CSS源(url)
- 6. 获取页面加载jQuery的时间?
- 7. 如何在两个时间戳之间获取对象
- 8. 如何从加载的DLL获取对象
- 9. 在Safari中加载Flash对象
- 10. detact HTTP对象加载时间以JavaScript
- 11. 如何使用swfObject获取Flash对象的HTML
- 12. 如何在Flash中获取对象的宽度和高度?
- 13. 如何从PHP中的时间戳获取日期对象?
- 14. 如何从PHP 5.2的DateTime对象获取unix时间戳?
- 15. 如何通过ng-click获取视频对象的时间
- 16. 如何获取HttpRuntime.Cache对象的到期日期时间?
- 17. 使用DOM获取Flash对象
- 18. 我们如何随时加载对象?
- 19. 如何获取对象内的对象?
- 20. 获取日期时间对象
- 21. 如何将对象附加到Flash中的旋转对象?
- 22. Flash加载时间效果如何延迟.delay元素?
- 23. 如何从日期对象python获取日期时间?
- 24. 如何从datetime.strptime对象获取“时间”部分python
- 25. Python:如何从datetime.timedelta对象获取时间?
- 26. 如何获取symfony页面加载时间?
- 27. 如何从har文件中获取页面加载时间?
- 28. 如何获取php页面加载时间统计?
- 29. 如何获取javascript/dom加载和处理时间指标
- 30. 如何从数据库中读取对象时加载相关对象?
如果你想避免外部接口调用,SWFObject的embedSWF方法在“属性”后面实际上有一个更多的可选属性。这是一个回调方法,将在flash完全加载时调用。 swfobject.embedSWF(“MyFlexApp.swf”,“flashContent”,“100%”,“100%”,swfVersionStr,xiSwfUrlStr,flashvars,params,属性,onFlexAppReady); – 2012-03-15 12:20:53
@JamesTomasino加载Flash应用程序或加载完整Flex应用程序(包括框架RSL)时调用该函数吗?这不是一回事:我猜想第一个选项,在这种情况下,当Flex框架只开始加载时,它将被调用。无论哪种方式,它都将不会等到初始数据加载完成。 – RIAstar 2012-03-15 14:26:50
它在ExternalInterface回调变为可用时被调用。这绝对是衡量加载swf本身需要多长时间,而不是任何支持资产或数据。 – 2012-03-15 14:41:03