Flex 3 では、アプリがローカル共有オブジェクトから格納されたウィンドウの位置とサイズを呼び出せるように、起動時にネイティブ ウィンドウが常に非表示になるように AIR アプリケーションをセットアップしました。その後、最後に使用されたウィンドウの位置とサイズを設定し、nativeWindow.activate() を呼び出してネイティブ ウィンドウを表示します。
非常にきれいで、常に完璧に機能しました!Flex 4に入ります...
Flex 4 では、何らかの理由で AIR 記述子ファイルの visible プロパティが無視されるようです。ドキュメントには動作するはずだと記載されていますが、私の簡単なテストでは、可視を false に設定しているかどうかに関係なく、AIR は常に起動後すぐにウィンドウを可視にします。
Flex 3のようにこれを機能させる方法を知っている人はいますか?
編集:わかりましたので、MXML 定義で visible 属性が false に設定されていない限り、Flex mx:WindowedApplication (および s:WindowedApplication?!?) コンポーネントが applicationComplete イベントが送出される直前にウィンドウを自動的に表示してアクティブ化するとドキュメントに記載されています。
これは、最初に visible を false に設定するという目的に何らかの形で反抗しているにもかかわらず、それ自体がすべて可視になる理由を説明しています。ただし、WindowedApplication.visible を false に設定すると、アプリ ウィンドウは意図したとおりにすぐに表示されますが、すぐに再び非表示になります。nativeWindow.activate() が呼び出されるのが早すぎるようです。1 フレーム待ってから呼び出すと、正常に動作し、表示されたままになるためです。ただし、次のフレームがトリガーされるのを待つために callLater または enterFrame ハンドラーを使用するのがベスト プラクティスであるとは思えません。