package { import flash.events.*; import flash.net.*; import fl.controls.SelectableList; import fl.video.*; import flash.text.TextField; import flash.display.MovieClip; /* class name has to be the same as the fla name, extends Movieclip class */ public class FLVPlayList extends MovieClip { /* URLLoader object loads external XML file */ var flvListLoader:URLLoader = new URLLoader(); /* class constructor sets data format for loader to plain text (XML) addes event listener & points it to loadComplete method, then points to video.xml file which contains video info. Last event listener listens for when video play is complete and calls completePlayback() method */ public function FLVPlayList() { flvListLoader.dataFormat = URLLoaderDataFormat.TEXT; flvListLoader.addEventListener(Event.COMPLETE, loadComplete); flvListLoader.load(new URLRequest("videos.xml")); flvList.addEventListener(Event.CHANGE, playVideo); vidPlayback.addEventListener("complete", completePlayback); } function loadComplete(event:Event):void { var flvXML:XML = new XML(event.target.data); for each (var vid in flvXML..video) { flvList.addItem({label:vid.@title, data:vid.@url, info:vid.@description}); } flvList.selectedIndex = 0; vidPlayback.source = (flvList.getItemAt(0).data); vidPlayback.play(); descText.text = (flvList.getItemAt(0).info); } function playVideo(event:Event) { vidPlayback.source = event.target.selectedItem.data; descText.text = event.target.selectedItem.info; } function completePlayback(eventObject:Object):void { var idx:uint = flvList.selectedIndex; if (flvList.selectedIndex == 3) { vidPlayback.source = (flvList.getItemAt(0).data); vidPlayback.play(); flvList.selectedIndex = 0; idx = 0; } else { idx += 1; vidPlayback.source = (flvList.getItemAt(idx).data); flvList.selectedIndex = idx; vidPlayback.play(); } } } }