2011-08-22 3 views
0

이 퀘스트는 매우 간단하게 들릴지 모르지만 공식 문서 나 공식 포럼 또는 어디서나 대답을 찾을 수 없었습니다.Actionscript/Flex 응용 프로그램에서 닫기/언로드 이벤트를 잡으십시오.

사용자가 응용 프로그램을 닫을 때 발생하는 이벤트를 찾고 있습니다. 이 이벤트는, 사전에 ... 나는 그런 일이 없다 상상할 수 없었다, 플래시 지금 11 개 버전 동안 주변되었습니다,

답변

2

음을

덕분에 존재 잠시 그것에 대해 생각해야합니다. 당신은 사건을 요구하고, 해고 당하고, 신청서가 닫힐 때 ... 사건을 일으키는 것이 무엇이며, 그것을 처리 할 것인가? 응용 프로그램? 하지만 방금 폐쇄되었습니다. 물론 자바 스크립트에서 뭔가를 수행하고 플래시 삽입 상태를 확인할 수도 있지만 플래시 플레이어가 언로드되는 방식 (사용자가 브라우저를 닫는 방법)에 따라 항상 작동하지는 않습니다. 또한 사용자가 플래시 샌드 박스 또는 브라우저를 죽이면 어떻게됩니까? 종료 된 응용 프로그램에서 이벤트를 보내는 방법은 없습니다.

궁극적으로 나는 당신이 성취하고자하는 바를 정확하게 살펴보고 더 나은 방법을 찾아 내려고 노력할 것입니다. 일부 리소스를 정리하는 서버와 같은 원격 리소스가 걱정된다면 Keepalive 신호를 구현하고 수신을 중지 할 때 정리 작업을 수행하는 것이 좋습니다.

+0

AIR 응용 프로그램을 수행하고 있기 때문에 브라우저 도구를 사용할 수 없습니다. 데스크톱 (Alt-F4와 비슷한 동작) 또는 TV (TV에 매우 의존적 임)가되면 서버 측에서 리소스를 정리하고 싶습니다. Keepalive 신호는 실제로 잔인한 소리처럼 들리지만 서버의 코드에 액세스 할 수 있다고 생각조차하지 않습니다./분석 결과는 정확하지만 문제는 여전히 동일합니다. – Cystack

+0

@cystack AIR에 대한 기록이 없습니다. 11 버전. AIR 관련 답변을 찾으려면 질문의 일부로 지정해야합니다. 아마도 플래시 시대에 대한 불만을 제거하십시오. – JeffryHouser

+0

나는이 질문이 특정 질문에 답하는 데 힘써 왔기 때문에 +1했다. – JeffryHouser

0

좀 봐주세요 Closing event이벤트 청취자를 콜백 함수에 첨부하면 기본값을 방지 할 수 있으므로 창은 닫히지 않고 논리를 실행할 수 있습니다. 그런 다음 close() 함수를 호출하여 창을 닫을 수 있습니다.

그래서 닫는 시간에 실행하고 싶은 것이 성공적으로 실행된다는 것을 알고 있습니다.

+1

JavaScript AIR 응용 프로그램에서 비슷한 작업을 수행하고 올바르게 작동하고 있습니다. 이벤트 객체'air.Event.CLOSING' 닫기 close function'window.nativeWindow.close()' – Pradeep

3

AIR 관련 솔루션을 찾고 있으므로; 기본 응용 프로그램 태그 (WindowedApplication)에서 closing 이벤트를 수신하려고합니다. 이 같은

개념적으로 뭔가 :

<s:WindowedApplication closing="onClosing(event)"> 
<fx:Script> 
    public function onClosing(event:Event):void{ 
    // execute code here 
    } 
</fx:Script> 

</s:WindowedApplication> 

또한 같은 클래스에 close event을 검사하거나 NativeWindow 클래스에 exiting 이벤트 수 있습니다. 다음과 같이 NativeWindow에 액세스 할 수 있습니다.

<s:WindowedApplication creationCompete="onCreationComplete(event)"> 
<fx:Script> 
    public function onCreationComplete(event:Event):void{ 
    this.addEventListener('exiting',onExiting); 
    } 
    public function onExiting(event:Event):void{ 
    // execute code here 
    } 
</fx:Script> 

</s:WindowedApplication> 
+0

시간 내 주셔서 감사합니다. 컨테이너에 WindowedApplication이있을 때 솔루션이 작동한다는 점에 대해서는 구체적으로 알지 못했습니다. 불행히도, 어도비 사양에 관한 TV 애플 리케이션으로 인해, 대신 응용 프로그램을 사용해야합니다. 그리고 나서 당신의 솔루션은 작동하지 않습니다. – Cystack

+1

@cystack 나는 원래의 질문에서 빠뜨린 중요한 세부 사항들이 얼마나 많은지에 놀란다.질문을 편집하여 TV 용 AIR 응용 프로그램을 작성하도록 지정해야합니다. TV 용 AIR는 AIR 2.5를 기반으로합니다. 1 년 미만입니다. 11 가지 버전의 플래시에 대한 귀하의 불만과는 다른 상황에 처해 있습니다. – JeffryHouser

관련 문제