我正在使用adobe flex和Air构建一个Windows应用程序。
它将支持两个显示,一个用于选择要播放的视频,另一个用于播放qued / selected视频。
我在adobe网站上看到,Air支持多个显示器,但它没有深入探讨。
这是我第一次这样做,所以有人可以请: a)如果有可能请告诉我 b)给我一个如何实现它的概述
谢谢
答案 0 :(得分:2)
我试着描述一个简单的例子。
假设您的视频列表是主应用程序窗口(这是您一直想看的窗口),播放器窗口是可选的,具体取决于用户是否选择了视频。
首先创建播放器窗口:
<!-- PlayerWindow.mxml -->
<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
width="400" height="300">
<fx:Declarations>
<fx:String id="video" />
</fx:Declarations>
<s:Label text="Now playing: {video}" />
</s:Window>
正如你所看到的,那里没有视频播放器:我只是想让这个例子变得尽可能简单。
现在,从主应用程序开始,当用户从列表中选择视频时,我们将打开该窗口并设置video
属性:
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
private var playerWindow:PlayerWindow;
private function openPlayerWindow():void {
//only open a new window if it isn't already there,
//otherwise just set the 'video' property
if (!playerWindow) {
playerWindow = new PlayerWindow();
playerWindow.addEventListener(Event.CLOSE, onClose);
playerWindow.open();
}
playerWindow.video = movieList.selectedItem;
}
private function onClose(event:Event):void {
//remove the reference to the window when the user closes it,
//so we can reopen it later
playerWindow.removeEventListener(Event.CLOSE, onClose);
playerWindow = null;
}
]]>
</fx:Script>
<s:List id="movieList" change="openPlayerWindow()">
<s:dataProvider>
<s:ArrayList>
<fx:String>Batman</fx:String>
<fx:String>Superman</fx:String>
<fx:String>Spiderman</fx:String>
</s:ArrayList>
</s:dataProvider>
</s:List>
video
属性只是一个简单的字符串。它可以用复杂的模型对象替换。如果然后从主窗口更改该模型对象的属性,则可以通过数据绑定将这些更改简单地反映在播放器窗口中。