2012-03-15 2 views
2
  • 플래시 객체가 브라우저 내부에서로드되는 데 걸리는 시간을 얻는 방법, 객체 준비에서 준비 상태까지?

답변

4

플래시 객체의로드 시간 만 측정하려는 경우 FireBug를 사용할 수 있습니다. Flex 어플리케이션의 사용 준비가 끝난 시점 (즉, 모든 RSL이로드되고 초기로드 된 모든 데이터)을 알고 싶다면 두 가지 접근 방법이 있다고 생각합니다. 앱에서 하나는 맞춤 프리 로더를 사용하여 타이밍을 시작하고 조건이 충족되면 타이밍을 중지합니다. 다른 하나는 JavaScript 및 ExternalInterface입니다. 그 중 후자는 프리 로더가로드되기 전에 이미 지연이있을 것이므로 가장 정확한 결과를 줄 것입니다.

자바 스크립트와 ExternalInterface를

내가 그래서 이런 짓을 적이없는 난 그냥 내 생각을 설명하겠습니다. Javascript에서는 Flash 객체의로드가 시작될 때 'date'객체를 만듭니다. 아마도 SWFObject을 사용하여 Flash 객체를 페이지에 삽입 할 수 있습니다. 아마 거기에 어딘가에 연결할 수 있습니다. 그런 다음 Flex 응용 프로그램 내부에서 필요한 조건이 충족 될 때 (해당 내용을 정의 할 때) ExternalInterface.call()을 사용하여 JavaScript에 Flex 응용 프로그램이 준비되었음을 알립니다. 새로운 '날짜'를 만들고 첫 번째 '날짜'를 빼면로드하는 시간이 있습니다.

ExternalInterface를 사용에 대한

자세한 정보는 문서에서 찾을 수 있습니다 http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb2.html

자세한 내용

응용 프로그램이 준비되었을 때 우리가 전화 할게 자바 스크립트 함수를 만듭니다 :

function onFlexAppReady() { 
    var end = new Date().getTime(); 
    var loadTime = end - start; //in ms. 
} 

이제 FlashBuilder에서 생성 된 코드에서 swf가 삽입되기 전에 시작 시간을 추가하십시오.

var start = new Date().getTime(); 
swfobject.embedSWF(
      "MyFlexApp.swf", "flashContent", 
      "100%", "100%", 
      swfVersionStr, xiSwfUrlStr, 
      flashvars, params, attributes); 

마지막으로, 당신의 플렉스 응용 프로그램에서, 적절한 조건이 충족 될 때, 자바 스크립트 함수를 호출 :

ExternalInterface.call("onFlexAppReady"); 

가 다시 말하지만,이 모든 테스트되지 않은 코드이지만, 당신이 시작할 수 있어야합니다.

+0

externalinterface 호출을 피하려면 SWFObject의 embedSWF 메소드에 "attributes"다음에 하나 더 많은 선택적 속성이 있습니다. 플래시가 완전히로드 될 때 호출되는 콜백 메소드입니다. swfobject.embedSWF ("MyFlexApp.swf", "flashContent", "100 %", "100 %", swfVersionStr, xiSwfUrlStr, flashvars, params, attributes, onFlexAppReady); –

+0

@JamesTomasino Flash 응용 프로그램이로드되거나 프레임 워크 RSL을 포함하여 전체 Flex 응용 프로그램이로드 될 때이 함수가 호출됩니까? 그것은 동일한 것은 아닙니다. 첫 번째 옵션을 추측합니다.이 경우 Flex 프레임 워크가로드되기 시작할 때 이미 호출됩니다. 어느 쪽이든, 초기 데이터가로드 될 때까지 기다리지 않아도됩니다. – RIAstar

+0

ExternalInterface 콜백을 사용할 수있을 때 호출됩니다. 이는 지원 자산이나 데이터가 아닌 swf 자체를로드하는 데 걸린 시간의 척도입니다. –

관련 문제