У меня есть 2 приложения AIR (A
и B
), которые могут взаимодействовать через объект LocalConnection
. Я убедился, что сообщения определенно отправляются / принимаются надлежащим образом.
Я хочу, чтобы 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;
}
Если я оставлю оба приложения в оконном режиме (stage.displayState = StageDisplayState.NORMAL
), то переключение alwaysInFront
на самом деле работает. Звонки activate()
или orderToFront()
все равно ничего не делают. Если я пытаюсь переключить alwaysInFront
, а затем установить приложение в полноэкранный режим, приложение заканчивается полноэкранным за моим оконным приложением. Может быть, есть событие, которое я должен подождать, прежде чем установить приложение в полноэкранный режим?
Я нашел поток, в котором упоминается, что orderToFront()
работает только относительно окон в том же приложении, что объясняет, почему оно, похоже, ничего не делает.
У кого-нибудь есть идеи, как это осуществить? Может быть, у меня есть способ встроить B
в приложение A
, чтобы они на самом деле были одним и тем же приложением? Я не уверен, как сделать это с приложением AIR так же просто, как просто загрузить SWF из-за необходимости внешних ресурсов.