2011-09-11 4 views
2

특정 조건이 충족되는 경우 Flex 어플리케이션을 중단시키는 코드를 추가해야합니다. Flex 애플리케이션이있는 상태 (어쩌면 완전히 초기화되지 않았거나 일부 구성 요소가 아직로드 중이 아닌지 등)에 관계없이 작동해야합니다.Flex 어플리케이션을 크래쉬하는 가장 확실한 방법은 무엇입니까?

가장 안정적인 방법은 무엇입니까?

+0

예외를 던지겠습니까? –

+0

앱을 다운시킬 수 있습니까? 내가 잘못하지 않았다면 URLLoader는 잡히지 않은 ioError가있을 때 예외를 throw하지만 앱을 다운시키지 않습니까? –

+1

왜 사용자가 앱과 상호 작용하지 못하게하는 모달 팝업 창만 표시 하시겠습니까? – moropus

답변

3

예를 들면 unresolved crash bugs 중 하나 시도 this one :

public function TestVerify() { 
    try { 
     with (this) { 
      return; 
     } 
    } 
    catch (e) { 
     trace('catch'); 
    } 
    finally { 
     trace('finally'); 
    } 
} 
0

댓글은 일종의 드래그입니다. 그러나 잡히지 않은 예외와 앱 충돌에 대한 요점을 증명할 수있는 코드를 게시하고 싶었습니다. 그래서 여기 있습니다.

예외를 발생 시키려면 throw commandError class을 사용하십시오. 잡히지 않은 예외로 인해 앱이 중단되지 않습니다. 여기

은 복사 및 붙여 넣기 및 실행할 수있는 예이다.

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" applicationComplete="windowedapplication1_applicationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 

      protected function windowedapplication1_applicationCompleteHandler(event:FlexEvent):void 
      { 
       var error : Error = new Error(); 
       throw error; 
      } 

     ]]> 
    </fx:Script> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 



    <s:Button /> 
</s:WindowedApplication> 

이 응용 프로그램을 Flash Builder에서 실행하면 "표준"오류 팝업이 표시됩니다. 그러나 일단 닫기를 클릭하면 버튼을 클릭하고 앱과 상호 작용할 수 있습니다.

캐치되지 않는 예외를 갖는 것은 응용 프로그램 충돌과 동일하지 않습니다; 사용자가 앱과 상호 작용하는 것을 방지 할 수 있습니다.

사용자가 앱과 상호 작용하지 못하도록하려면 FlexGlobals.topLevelApplication.enabled == false; 행을 따라 무엇인가해야합니다. 그러나 당신이하고 싶은 의견이 아니라는 주장을 계속합니다.

+0

Hehe 나는 그 마지막 문장을 좋아한다. –

관련 문제