Поймать событие закрытия / выгрузки в приложении Actionscript / Flex - PullRequest
0 голосов
/ 22 августа 2011

Этот квест может показаться очень, очень упрощенным, но я не смог найти ответ ни на официальной документации, ни на официальных форумах, ни где-либо еще.

Я просто ищу событие, инициированное, когда пользовательзакрывает приложение.Это событие ДОЛЖНО существовать, Flash существует уже 11 версий, я не могу представить, что такого не существует ...

Заранее спасибо

Ответы [ 3 ]

3 голосов
/ 23 августа 2011

Поскольку вы ищете специальное решение для AIR; вы захотите прослушать событие закрытия в вашем основном теге приложения (WindowedApplication).

Концептуально что-то вроде этого:

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

</s:WindowedApplication>

Вы также можете проверить событие close в том же классе или событие exiting в классе NativeWindow. Вы можете получить доступ к 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>
2 голосов
/ 22 августа 2011

Ну, подумай минутку.Вы запрашиваете событие, которое должно быть запущено, когда приложение закрывается ... так, что вызывает событие, и что будет с ним работать?Приложение?Но это просто закрыто.Конечно, вы могли бы сделать что-то в javascript и проверить состояние встроенного flash, но даже это не всегда будет работать в зависимости от того, как выгружается flash player (например, пользователь закрывает свой браузер).Кроме того, что произойдет, если пользователь убьет флэш-песочницу или браузер?Невозможно отправить событие из прерванного приложения.

В конечном счете, я бы очень внимательно посмотрел на то, чего именно вы пытаетесь достичь, и попытался бы найти лучший способ сделать это.Если вы беспокоитесь об удаленном ресурсе, таком как сервер, очищающий некоторые ресурсы, вам может потребоваться реализовать сигнал активности и просто выполнить очистку, когда вы перестанете его получать.

0 голосов
/ 23 августа 2011

Пожалуйста, посмотрите на Закрытие мероприятия Вы можете прикрепить к нему прослушиватель событий и в функции обратного вызова использовать предотвращение по умолчанию, чтобы окно не закрывалось и вы могли запустить свою логику. После этого, вызвав функцию close (), вы можете закрыть окно.

Так что вы точно знаете, что хотите запустить во время закрытия, успешно выполнено.

...