我正在为想要在两个屏幕上显示游戏界面的客户构建一个Adobe AIR(HTML / JavaScript)应用程序。一个屏幕是用户将与游戏本身交互的地方,另一个屏幕(显示在投影仪上)将向观众显示游戏。 屏幕2的内容与屏幕1不同,因此不是镜像的情况。
这方面的一个例子是宾果游戏,用户将点击屏幕1上的按钮以提取数字等。屏幕2将显示数字网格,并向玩正在玩游戏的观众提取下一个数字。所以你可以在一个人的大厅里想象这一点,屏幕1显示给舞台上的人,屏幕2被投射到大厅里的其他人。因此,屏幕2没有交互,只显示数据。
我该如何处理?因为我需要能够将命令发送到另一个窗口以使其显示数字,更新数字网格等。
我看过这样的事情:
projectorWindow.setWindowReference(air.NativeApplication.nativeApplication.openedWindows[1].stage.getChildAt(0).window);
projectorWindow.sendNumber( 88 );
但有人有更好的主意吗?这样做的现有例子?
第二个问题:
另外为了让windows知道每个人在说什么,我假设我必须在每个窗口中加载完全相同的代码,所以基本上加载一个HTML文件,如:Bingo.html
然后传递一个查询字符串告诉它运行什么模式...例如Bingo.html?mode=user
和Bingo.html?mode=audience
听起来合适吗?或者有更好的方法来做到这一点吗?
例如:
function loadGame(game) {
mainWindow.load(new air.URLRequest(game + '.html?mode=user'));
projectorWindow.load(new air.URLRequest(game + '.html?mode=audience'));
}
我不太确定如何基于查询字符串触发不同的UI元素......但这是使用AIR构建分屏游戏的最佳方式吗?或者我可以做得更好吗?