Javascript 在两个AdobeAIR窗口之间通信
我正在为一个希望在两个屏幕上显示游戏界面的客户构建一个AdobeAIR(HTML/JavaScript)应用程序。一个屏幕是用户与游戏本身交互的地方,另一个屏幕(显示在投影仪上)将向观众展示游戏屏幕2的内容与屏幕1不同,因此不属于镜像。 例如,一个宾果游戏,用户将单击屏幕1上的按钮拉出数字等,屏幕2将向正在玩游戏的观众显示数字网格和下一个拉出的数字。你可以想象,在一个大厅里,第一屏展示给舞台上的人,第二屏展示给大厅里的其他人。因此,屏幕2没有交互,只显示数据 我该怎么处理?因为我需要能够发送命令到其他窗口,使其显示数字,更新数字网格,等等 我考虑过做一些类似的事情:Javascript 在两个AdobeAIR窗口之间通信,javascript,air,Javascript,Air,我正在为一个希望在两个屏幕上显示游戏界面的客户构建一个AdobeAIR(HTML/JavaScript)应用程序。一个屏幕是用户与游戏本身交互的地方,另一个屏幕(显示在投影仪上)将向观众展示游戏屏幕2的内容与屏幕1不同,因此不属于镜像。 例如,一个宾果游戏,用户将单击屏幕1上的按钮拉出数字等,屏幕2将向正在玩游戏的观众显示数字网格和下一个拉出的数字。你可以想象,在一个大厅里,第一屏展示给舞台上的人,第二屏展示给大厅里的其他人。因此,屏幕2没有交互,只显示数据 我该怎么处理?因为我需要能够发送命令
projectorWindow.setWindowReference(air.NativeApplication.nativeApplication.openedWindows[1].stage.getChildAt(0).window);
projectorWindow.sendNumber( 88 );
但是有谁有更好的主意吗?现有的这样做的例子
第二个问题: 另外,为了让windows知道每个窗口都在谈论什么,我想我必须将完全相同的代码加载到每个窗口中,因此基本上加载一个HTML文件,如:
Bingo.HTML
,然后传递一个查询字符串,告诉它在什么模式下运行。。。e、 g.Bingo.html?mode=用户
和Bingo.html?mode=观众
听起来对吗?还是会有更好的方法
例如:
function loadGame(game) {
mainWindow.load(new air.URLRequest(game + '.html?mode=user'));
projectorWindow.load(new air.URLRequest(game + '.html?mode=audience'));
}
还不确定如何根据查询字符串触发不同的UI元素。。。但这是使用AIR构建分屏游戏的最佳方式吗?或者我可以做得更好吗?这两个air应用程序将在同一台机器上运行吗?你不能用本地连接吗?()。但它们不是两个应用程序。这是一个有两个窗口的应用程序。我不知道是否有一种方法可以在air和它的嵌入式html之间进行通信,但是如果你的air应用程序加载一个html(父html),并且父html将生成两个窗口,userWindow和audienceWindow,这难道不容易吗。我自己还没有尝试从air应用程序中生成一个新的html窗口,但从理论上讲,这两个窗口应该更容易沟通,而父窗口是中介。您还可以探索更现代的方法:。air应用程序上会有代码逻辑吗?还是它只是作为html应用程序的加载程序/外壳?我不完全理解你说的一个html生成两个窗口是什么意思,因为我确信这就是我已经拥有的。你能给我举个代码例子吗?谢谢