- 如何獲取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. 如何獲取Flash對象(swf)變量
- 2. 如何從NSDate對象獲取時間?
- 3. 獲取對象時未加載列表
- 4. 延遲加載Flash對象
- 5. 如何確定嵌入式Flash對象何時加載?
- 6. 如何在獲取PFquery對象時獲取PFRelation對象?
- 7. 獲取的時間序列對象
- 8. 如何讓我的Flash對象專注於加載?
- 9. 獲取頁面加載jQuery的時間?
- 10. 獲取加載頁面的時間戳
- 11. 獲取加載時間的CSS源(url)
- 12. 如何在兩個時間戳之間獲取對象
- 13. 在Safari中加載Flash對象
- 14. 如何從加載的DLL獲取對象
- 15. detact HTTP對象加載時間以JavaScript
- 16. 如何在Flash中獲取對象的寬度和高度?
- 17. 如何使用swfObject獲取Flash對象的HTML
- 18. 使用DOM獲取Flash對象
- 19. 如何獲取具有最高時間戳值的x對象?
- 20. 如何獲取HttpRuntime.Cache對象的到期日期時間?
- 21. 如何通過ng-click獲取視頻對象的時間
- 22. 如何從PHP 5.2的DateTime對象獲取unix時間戳?
- 23. 如何從PHP中的時間戳獲取日期對象?
- 24. 如何獲取兩個DateTime對象之間的時差?
- 25. 我們如何隨時加載對象?
- 26. 如何獲取對象內的對象?
- 27. 獲取時間對象創建
- 28. 從時間戳獲取tzinfo對象
- 29. 獲取日期時間對象
- 30. 如何將對象附加到Flash中的旋轉對象?
如果你想避免外部接口調用,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