1

如果这不是这个问题的合适论坛,我深表歉意 - 但我正在寻找一个应用程序,它将自己分布在多个监视器上(不是在多个监视器上复制相同的图像,而是 1 个图像填充 4 个监视器)。我更喜欢用 as3 / php / javascript 编写它,但如有必要,我会考虑使用 C# 之类的东西。有没有人有任何开始这方面的提示?该平台可以是 PC 或 MAC,但最好有一些开箱即用的软件,以便将软件投影到多台显示器上。

4

3 回答 3

4

一般回答,希望对您有所帮助。

您可以使用 AIR 在不同的监视器上部署具有多个窗口的应用程序。通过使用多个窗口,您将不受 8191 像素宽度上限的限制。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 个窗口,每个显示一个,并为每个窗口附加不同的图像。您还可以将这些屏幕中的每一个设置为每个显示器的全宽和全高。

于 2012-05-02T15:33:18.030 回答
1

对于固定设置/安装,我使用几种方法成功地做到了这一点:

舞台尺寸为 QFHD(3840x2160 - 即 4 x HD,配置为 2x2)的单个 Air 应用程序。然后在 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.

于 2012-05-03T17:13:08.620 回答
0

即使我没有测试过这个解决方案,我也会把它放在那里 - 似乎有一个纯粹的硬件解决方案 - 一个拼接墙控制器,它将接收一个视频源并在四个屏幕上均匀地解析它。像这样的东西:

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

似乎它可以做到这一点,而不必在编程方面想出任何花哨的东西,但显然它的成本可能会令人望而却步。

于 2012-05-03T13:57:32.650 回答