2010-01-19 5 views
0

플렉스 앱을 다운로드하고 초기화 할 때의 고객 경험을 추적하고 싶습니다. (a) 프리 로더에서 응용 프로그램으로 데이터를 전달하는 방법이 있습니까? 다운로드하는 데 걸리는 시간과 초기화하는 데 걸리는 시간을 전달하고 싶습니다. (B) 또는 : 1. 다운로드 완료 2. 초기화 (응용 프로그램의 creationComplete와 동일) 전체플렉스 : 프리 로더의 데이터를 앱으로 전달 하시겠습니까?

답변

1

LiveDocs의의 "Showing the download progress of an application" 기사가 도움이 될 것입니다 는 프리 로더 이벤트에 해당하는 응용 프로그램 수준에서 이벤트가 있나요 . 다운로드/초기화하는 동안 경과 된 시간을 추적 할 이벤트 리스너,

  • 재정의를

    • 이 DownloadProgressBar의 간단한 서브 클래스를 만들 : 그 문서를 바탕으로

      , 나는 같은 것을 할 것 ,

    • 은 시간 값을 정적 속성으로 저장하므로 초기화가 완료되면 응용 프로그램에서 액세스 할 수 있습니다.

    다음은 내가 생각하는 것의 예입니다. (이 코드를 컴파일하지 않았고, 내가 말하는 것에 대한 아이디어를 더 많이 제공합니다.) 당신의 Application.mxml에 프리 로더로 APPLICATION_COMPLETE 이벤트를 수신하는 것이

    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(); 
        } 
    } 
    } 
    

    설정 :

    <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. 
    } 
    
  • +0

    이 좋은 예입니다. 응용 프로그램은 프리 로더에서 데이터를 가져올 수 있지만 다른 방법으로 이동하지 않고 프리 로더의 데이터를 응용 프로그램의 일부로 푸시하려고합니다 (우연히 프리 로더에서 더 많은 응용 프로그램을로드 할 위험이 있습니다). –

    관련 문제