0
我想跟蹤下載和初始化我的Flex應用程序的客戶體驗。 (a)是否有將數據從預加載器傳遞到應用程序的方法?我想通過下載所需的時間和初始化所需的時間。 (B)另外: 有沒有在對應於預加載事件的應用程序級別的事件: 1.下載完整 2.初始化完成(同應用creationComplete)Flex:將數據從preloader傳遞到應用程序?
我想跟蹤下載和初始化我的Flex應用程序的客戶體驗。 (a)是否有將數據從預加載器傳遞到應用程序的方法?我想通過下載所需的時間和初始化所需的時間。 (B)另外: 有沒有在對應於預加載事件的應用程序級別的事件: 1.下載完整 2.初始化完成(同應用creationComplete)Flex:將數據從preloader傳遞到應用程序?
的"Showing the download progress of an application"文章中的LiveDocs中應該幫助。
基於文檔的,我會做這樣的事情:
這是我在想什麼的例子(我沒有編譯這段代碼,更多的是給出我在說什麼的概念)。
package
{
public class TimedProgressBar extends mx.preloaders.DownloadProgressBar
{
public static var startTime:Number = 0;
public static var downloadCompleteTime:Number = 0;
public static var RSLCompleteTime:Number = 0;
public function TimedProgressBar()
{
super();
startTime = getTimer();
}
override protected function completeHandler(event:Event):void
{
super();
downloadCompleteTime = getTimer();
}
override protected function rslCompleteHandler(event:RSLEvent):void
{
super();
RSLCompleteTime = getTimer();
}
}
}
集,作爲您的Application.mxml您的預加載,並聽取了APPLICATION_COMPLETE事件:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
preloader="TimedProgressBar"
applicationComplete="applicationCompleteHandler(event)">
private function applicationCompleteHandler(event:FlexEvent):void
{
var completeTime:Number = getTimer();
var downloadTime:Number = TimedProgressBar.downloadCompleteTime - TimedProgressBar.startTime;
var rslDownloadTime:Number = TimedProgressBar.RSLCompleteTime - TimedProgressBar.downloadCompleteTime;
var totalInitTime:Number = completeTime - TimedProgressBar.startTime;
// Do whatever logging you want with this information.
}
這是一個很好的例子。應用程序可以從預加載器中獲取數據,但不希望以其他方式進行,並嘗試將數據從預加載器推送到應用程序的任何部分(這可能會無意中在預加載器中加載更多應用程序)。 – 2010-01-22 03:15:26