我想跟踪下载和初始化我的Flex应用程序的客户体验。 (a)有没有办法将数据从预加载器传递给应用程序?我想通过下载所需的时间和初始化所需的时间。 (B)可替代地: 应用程序级别是否存在与预加载器事件对应的事件: 1.下载完成 2.初始化完成(与Application creationComplete相同)
答案 0 :(得分:1)
liveocs中的"Showing the download progress of an application"文章应该有所帮助。
基于该文档,我会做这样的事情:
这是我正在思考的一个例子(我没有编译这段代码,更多的是要了解我在说什么)。
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.
}