开发跨多个监视器的应用程序

时间:2012-05-02 14:42:27

标签: javascript actionscript-3 multiple-monitors

如果这不是这个问题的正确论坛,我很抱歉 - 但我正在寻找一个能够在多个监视器上传播的应用程序(不是在多个监视器上复制的相同图像,而是填充4个监视器的1个图像) 。我更喜欢用as3 / php / javascript编写它,但如果需要的话会考虑像C#这样的东西。有没有人有任何关于开始这个的提示?该平台可以是PC或MAC,但是有一些开箱即用的软件可以很方便地将软件投影到多个监视器上。

3 个答案:

答案 0 :(得分:4)

一般答案,希望这很有帮助。

您可以使用AIR在不同的监视器上部署具有多个窗口的应用程序。通过使用多个窗口,您不会受到8191px宽度上限的限制。 IMO这是一种比跨越多个显示器的大窗口更好的方法。

使用Screen类可以访问有关系统当前可用的监视器的信息。此类允许您获取当前可用屏幕Screen.screens的数组以及屏幕边界screen.bounds

甚至还有一个包装类使这个过程变得更容易:

http://www.joristimmerman.be/wordpress/2009/03/03/screenmanager-expand-your-air-application/

使用这个类看起来就像

一样简单
ScreenManager.openWindowCenteredOnScreen(new window, screen number);

它看起来还有一些其他方法对你的情况有用

ScreenManager.stretchWindowToAllScreens() //would be limited by the stage size cap
ScreenManager.openWindowFullScreenOn() 

创建新窗口时,您可以使用screen.visibleBounds获取正确的大小调整信息。

然后,您可以使用NativeWindow在另一个显示器上创建并打开一个新的应用程序窗口。此代码应该可以帮助您入门

var window:NativeWindow = new NativeWindow();
var content:Sprite = new Sprite(); //a container for some display objects to appear inside your new window
window.stage.addChild(content); //adding the content to the new window;
window.activate();

使用此功能,您将能够创建4个窗口,每个显示一个窗口,并为每个窗口附加不同的图像。您还可以将每个屏幕设置为每个显示的全宽和高度。

答案 1 :(得分:1)

我成功地使用了几种方法来修复设置/安装:

单个Air应用,舞台大小为QFHD(3840x2160 - 即4 x HD,配置为2x2)。然后在application.xml中简单地设置以下内容,它将跨越它们

<systemChrome>none</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<minimizable>false</minimizable>
<maximizable>false</maximizable>
<resizable>false</resizable>
<x>0</x>
<y>0</y>
<width>3840</width>
<height>2160</height>

或者使用ATI eyefinity显卡,您可以创建一个虚拟显示器,只需使用:

stage.displayState = StageDisplayState.FULL_SCREEN;
stage.align = StageAlign.TOP_LEFT;

Eyefinity驱动程序还使您能够补偿这个伟大功能的边框。

我认为这两种方法都是最好的,因为它们在尝试跨多个NativeWindow's动画对象时大大降低了复杂性。

答案 2 :(得分:0)

我打算把这个解决方案放在那里,即使我还没有测试过 - 似乎有一个纯粹的硬件解决方案 - 一个视频墙控制器,它将采用一个视频源并将其均匀地解析为四个屏幕。像这样:

http://www.bhphotovideo.com/c/product/570090-REG/Smart_AVI_UXST4S_Stretcher_Pro.html

好像它可以做到这一点,而不必在编程方面找出任何奇特的东西,但显然它可能成本过高。