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