Статья "Отображение прогресса загрузки приложения" должна помочь.
Исходя из этой документации, я бы сделал что-то вроде этого:
- создайте простой подкласс класса DownloadProgressBar,
- переопределите прослушиватели событий, чтобы отслеживать количество времени, которое прошло во время загрузки / инициализации,
- сохраните значения времени как статические свойства, чтобы выможете получить к ним доступ из вашего приложения после завершения инициализации.
Вот пример того, что я думаю (я не скомпилировал этот код, это больше для того, чтобы дать представление о том, что яговорить о).
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.
}