<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
verticalAlign="middle"
width="100%"
height="100%"
frameRate="30"
applicationComplete="initApp()"
xmlns:xray="com.blitzagency.xray.logger.*"
layout="absolute"
xmlns:ns1="*" viewSourceURL="srcview/index.html">
<mx:Style source="styles.css" />
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import com.blitzagency.util.LSOUserPreferences;
import com.blitzagency.xray.logger.XrayLog;
import com.blitzagency.xray.logger.XrayLogger;
import mx.core.ScrollPolicy;
import mx.collections.ArrayCollection;
import com.blitzagency.xray.ui.OutputTools;
import mx.controls.List;
private var nc:NetConnection;
private var ns:NetStream;
private var log:XrayLog;
[Bindable]
public var videoList:ArrayCollection;
public function initApp():void
{
Security.allowDomain("*");
log = new XrayLog();
XrayLogger.getInstance().registerStage(stage);
addEventListener("resize", handleResize);
LSOUserPreferences.load("FLVPlayerPrefs");
givenPath.text = "rtmp://localhost/oflaDemo";
nc = new NetConnection();
nc.client = this;
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
nc.objectEncoding = ObjectEncoding.AMF0;
}
public function doConnection():void
{
nc.connect(givenPath.text);
}
public function onBWDone():void
{
}
private function netStatusHandler(event:NetStatusEvent):void
{
log.debug("netStatus", event.info.code);
if(event.info.code == "NetConnection.Connect.Success")
{
log.debug("connected", nc.connected);
previewWindow.registerConnection(nc);
catchVideos();
}
}
public function catchVideos():void
{
var nc_responder:Responder = new Responder(getMediaList, null);
nc.call("demoService.getListOfAvailableFLVs", nc_responder);
}
public function getMediaList (list:Object):void
{
var mediaList:Array = new Array();
for(var items:String in list)
{
log.debug("items", list[items]);
mediaList.push({label:items, size:list[items].size, dateModified:list[items].lastModified});
}
videoList = new ArrayCollection(mediaList);
}
private function securityErrorHandler(e:SecurityErrorEvent):void
{
log.debug("nc error", e.text);
}
private function handleResize(e:Event):void
{
videoListContainer.invalidateDisplayList();
}
public function changePreview(event:Event):void
{
previewWindow.setPath(videoListContainer.selectedItem.label);
}
]]>
</mx:Script>
<mx:Button label="Connect" click="doConnection()" toolTip="Connect to Red5" width="65" right="5" top="5">
</mx:Button>
<ns1:PreviewWindow id="previewWindow" right="5" bottom="110" top="30" left="5">
</ns1:PreviewWindow>
<mx:Panel right="5" bottom="5" layout="absolute" title="Current Videos" horizontalScrollPolicy="off" verticalScrollPolicy="off" left="5" height="100">
<mx:DataGrid id="videoListContainer" height="100%" width="100%" dataProvider="{videoList}" change="changePreview(event)">
<mx:columns>
<mx:DataGridColumn dataField="label" headerText="File"/>
<mx:DataGridColumn dataField="size" headerText="Size"/>
<mx:DataGridColumn dataField="dateModified" headerText="Modified Date"/>
</mx:columns>
</mx:DataGrid>
</mx:Panel>
<mx:TextInput right="78" left="5" id="givenPath" top="5"/>
</mx:Application>