Программно закрыть приложение AIR - PullRequest
5 голосов
/ 17 февраля 2011

Я хотел бы знать, как правильно закрыть приложение AIR программным способом.

В моем Spark WindowedApplication у меня есть:

this.addEventListener( Event.CLOSING, shutdownApp );

и, конечно, реализация метода shutdownApp (который в основном приводит в порядок временные файлы).верхняя правая кнопка закрытия окна.Однако у меня также есть функциональность, которая должна закрыть приложение.В коде, который я назвал:

NativeApplication.nativeApplication.exit();

Однако это не вызывает метод Event.CLOSING, и поэтому мои временные файлы не очищаются.Разве я не должен вызывать nativeApplication.exit?Если так, что я должен вместо этого позвонить?Я предпочел бы не вызывать мой метод shutdownApp перед NativeApplication.exit (), поскольку это не выглядит так элегантно.

Может кто-нибудь пролить свет на правильный способ сделать это?

Спасибо,

Фил

Ответы [ 3 ]

7 голосов
/ 01 декабря 2011

Я знаю, что на этот вопрос ответили и приняли, но думал, что поделюсь, пользуюсь.

stage.nativeWindow.close();
4 голосов
/ 17 февраля 2011

Документация выглядит немного двусмысленно по этому вопросу, и у меня будет такая же интерпретация, как и у вас.Вы пробовали close или методы выхода в WindowedApplication?

Примерно так: FlexGlobals и topLevelApplication:

(FlexGlobals.topLevelApplication as WindowedApplication).close();

или

(FlexGlobals.topLevelApplication as WindowedApplication).exit();
1 голос
/ 05 ноября 2013

Просто дайте ответ здесь, потому что я искал связанный вопрос и не смог найти что-то.

Я хотел сделать что-то похожее и закрыть приложение AIR, когда нажата собственная кнопка закрытия окна документа (spark.components.Window), думая, что спарк-контейнер WindowedApplication (главное окно приложений) по-прежнему активен для удержания и управлять собственным меню (при запуске приложения оно также используется для отображения заставки. Оно должно оставаться открытым, поскольку, если оно закрыто, собственное меню больше не будет отображаться или быть недоступным, поэтому его свойство visible просто установлено в false) .

Моей главной проблемой было событие закрытия окна. Регистрация с помощью ActionScript, например

      this.addEventListener(Event.Closing, windowClosed);

не работает: событие закрытия не отправлено. Единственным способом было зарегистрировать обработчик событий непосредственно в элементе s: Window при запуске файла MXML. Я просто добавляю закрывающий атрибут:

      closing="window1_closingHandler(event)"

Событие было отправлено тогда и в window1_closingHandler-функцию я вызвал

      NativeApplication.nativeApplication.exit();

Это работает для меня и закрывает все приложение.

...