LocalConnection
オブジェクト経由で通信できる2つのAIRアプリケーション(A
およびB
)があります。私は、メッセージが確実に適切に送受信されていることを確認しました。外部アプリケーションでウィンドウを管理する方法
私はA
を手に入れて、手前に来てください。B
両方のアプリケーションはフルスクリーンです:
stage.fullScreenSourceRect = new Rectangle(0, 0, 1080, 1920);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
私はいくつかの順列を試しましたが、まだ何も動作していないようです。
private function initSlave(channel: String): void {
conn = new LocalConnection();
conn.client = {
'activateSlave': activateSlave
};
conn.allowDomain("*");
conn.connect("_" + channel);
}
private function activateSlave(): void {
stage.nativeWindow.orderToFront();
// or
stage.nativeWindow.activate();
// or
stage.nativeWindow.alwaysInFront = true;
stage.nativeWindow.alwaysInFront = false;
}
私は、実際に動作するalwaysInFront
を切り替え、ウィンドウモード(stage.displayState = StageDisplayState.NORMAL
)で両方のアプリケーションを残す場合。 activate()
またはorderToFront()
を呼び出しても何も起こりません。 alwaysInFront
をトグルしてアプリケーションをフルスクリーンに設定しようとすると、アプリケーションはウィンドウ付きのアプリケーションの後ろにフルスクリーンで表示されます。アプリをフルスクリーンに設定する前に待つべきイベントがあるのでしょうか?
orderToFront()
は、同じアプリケーション内のウィンドウに対してのみ動作することが記載されているスレッドを見つけました。これは、何もしないように見える理由を説明しています。
誰にもこの問題を解決するための洞察はありますか?たぶん私はB
をアプリケーションA
に埋め込む方法があるので、実際には同じアプリケーションですか?私は、単に外部リソースを必要とするためSWFをロードするだけで、AIRアプリケーションでこれを行う方法がわかりません。
両方のアプリがフルスクリーンでない場合、同じ問題を再現できますか? – keyle
私は窓付きアプリケーションで少しのテストで質問を更新しました。 'activate()'は明示的にウィンドウを前面に持ってフォーカスを得るべきだとドキュメントで言いますが、どちらの動作も見えません。 –
orderToBack()は機能しますか?私はある種の非アクティブなウィンドウの問題を考えています。 – keyle