gpt4 book ai didi

apache-flex - 如何管理外部应用程序中的窗口

转载 作者:行者123 更新时间:2023-12-01 04:06:17 28 4
gpt4 key购买 nike

我有 2 个 AIR 应用程序( AB )可以通过 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 一样简单。

最佳答案

由于没有其他人提供解决方案,我将快速提及我正在使用的 hack。基本上我有 2 LocalConnection channel 之一,来自 AB ,还有一个来自 BA .
可见程序(例如 A )然后将淡化为白色,设置 visiblefalse ,并发送消息至 B放弃控制。 B已经用 stage.nativeWindow.visible = false 初始化了自己, 当它收到来自 A 的消息时它以全白屏幕的形式出现并在 GUI 中消失。 A前有轻微偏移套visiblefalseB显示的时间,否则在两个窗口最小化的瞬间会弹出。

无论如何,你去了,它很丑,但它实际上工作得很好。

关于apache-flex - 如何管理外部应用程序中的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9168122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com