2011-02-18 4 views
0

내 응용 프로그램에 타이머가 있습니다. 30 분마다 웹 서비스를 공격하고 데이터를 가져 와서 UI를 업데이트합니다. 어제까지 응용 프로그램이 잘 작동했습니다. 갑자기 일부 문제로 인해 웹 서비스를 사용할 수 없었습니다. 이 기간 동안 응용 프로그램은 경고 창에 RPC 오류를 여러 번 표시했습니다 (100 개 이상의 경고 상자). 이 경고 상자로 인해 내 애플리케이션이 중단되어 아무 것도 할 수 없었습니다.플렉스에서 여러 경고창이 표시되지 않도록하는 방법

나는 여러 가지 접근법을 시도했지만 아무런 효과가 없었습니다. 마지막으로, 플래그를 사용하려고했습니다. 모든 접근법에서 이것은 유망 해 보였다. 그래서 나는 그것을 구현했습니다. 기본적으로,이 접근법에서 우리는 경보를 열 때마다 깃발을 놓을 것입니다. 경보를 열고 닫는 동안 우리는이 깃발을 재설정 할 것입니다. 그러나 예상대로 작동하지 않았습니다. 여러 가지 경고창을 피하는 데 도움이 될 수있는 방법이 있습니까?

이 문제를 해결하려면 도와주세요.

public class AlertWrapper { 

    private static var lastAlert:Alert; 

    public static function showAlert(text:String, title:String):void { 
     if (lastAlert) { 
      PopUpManager.removePopUp(lastAlert); 
      //or 
      //return; //ignore last alert 
     } 
     lastAlert = Alert.show(text, title, null, 4, onAlertClose); 
    } 

    private static function onAlertClose(event:CloseEvent):void { 
     lastAlert = null; 
    } 
} 

수입이없는,하지만 난 생각이 분명하다 희망 :

답변

2

내가 열 알림 래퍼를 쓰기 만이 래퍼를 사용하는 것이 코드에 중요 Alert.show 없습니다.

+0

약간의 오차가 있습니다. 나는 여기에 완전한 오류를 게시 할 수 없습니다. 오류 \t mx.managers :: SystemManager/updateLastActiveForm() [C : \ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ managers \ SystemManager.as : 5087] \t at mx.managers :: SystemManager/activate() [C : \ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ managers \ SystemManager.as : 2352] \t at mx.managers :: mx.manager :: FocusManager/creationCompleteHandler() [C : \ autobuild \ .. \ mx \ managers \\t의 경우, FocusManager.as:1592] ...... – Dinesh

+0

그래서 경고를 제거하지 못합니까? 나는 그것을 어떻게하는지 아직 모른다 (테스트가 필요하다). 어쩌면 간단한 try/catch가 도움이 될 것입니다. 'PopUpManager.removePopUp (lastAlert)'행을 주석 처리하고'return'의 주석 처리를 제거하면 처음으로 닫힐 때까지 마지막 경고를 무시합니다. – alxx

+0

Alxx가 try catch를 사용하는 것이 좋을 것이라고 생각합니다. 일부 서버 간섭이 발생할 때 이러한 종류의 상황이 발생합니다. 런타임 오류가 가장 잘 catch 블록을 사용하여 처리되는 것을보십시오. –

관련 문제