Во Flex 3 у меня была настройка приложения AIR, чтобы при запуске всегда было невидимое собственное окно, чтобы приложение могло вызывать сохраненную позицию и размер окна из локального общего объекта. После этого он устанавливает последнее использованное окно pos и размер, а затем делает видимое собственное окно, вызывая nativeWindow.activate ().
Очень чисто, всегда работал безупречно! Теперь введите Flex 4 ...
В Flex 4 свойство visible в файле дескриптора AIR почему-то игнорируется. В документации говорится, что она должна работать, но в моем простом тесте AIR всегда делает окно видимым сразу после запуска, независимо от того, установлен ли я в значение false.
Кто-нибудь знает, как заставить это работать, как это было во Flex 3?
РЕДАКТИРОВАТЬ: ОК, поэтому документы утверждают, что компонент Flex mx: WindowedApplication (и s: WindowedApplication?!?) Автоматически отображает и активирует окно непосредственно перед отправкой события applicationComplete, если для атрибута visible не установлено значение false в Определение MXML.
Это объясняет, почему он становится видимым сам по себе, даже если он каким-то образом бросает вызов цели установки видимого в false в первую очередь.
Однако, если для WindowedApplication.visible задано значение false, окно приложения вскоре станет видимым, как и предполагалось, но затем мгновенно снова станет невидимым через доли секунды. Кажется, что nativeWindow.activate () вызывается слишком рано, потому что, если я жду один кадр, а затем вызываю его, он работает как должен и остается видимым. Однако я сомневаюсь, что лучше всего использовать callLater или обработчик enterFrame для ожидания запуска следующего кадра.