package thecouch { import com.flashdynamix.events.CustomEvent; import com.flashdynamix.services.YouTube; import flash.display.Bitmap; import flash.display.DisplayObject; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageDisplayState; import flash.display.StageScaleMode; import flash.events.ErrorEvent; import flash.events.Event; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.events.AsyncErrorEvent; import flash.events.MouseEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; /** * LGPL licensed http://www.gnu.org/copyleft/lesser.html * @author Peter Backx */ public class Main extends Sprite { [Embed(source = '../../lib/lc3.jpg')] private var Logo : Class; private var displayedObject : FullScreenAbleDisplayObject; private var player : YouTubePlayer; private var yt: YouTube; public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; displayedObject = new FullScreenAbleDisplayObject(new Logo(), stage); player = new YouTubePlayer(); player.addEventListener(YouTubePlayer.PLAYER_READY, playerReady); player.addEventListener(YouTubePlayer.ENDED, onPlayerEnded); trace("started"); } private function playerReady(event:Event):void { displayedObject.remove(); displayedObject = new FullScreenAbleDisplayObject(player, stage); yt = new YouTube(); yt.addEventListener(Event.COMPLETE, onLoaded); yt.addEventListener(ErrorEvent.ERROR, onError); getList(); } private function onLoaded(e:CustomEvent):void { switch (e.id) { case YouTube.SEARCH : trace("search finished"); var videoURL : String = "http://www.youtube.com/watch?v=tX1s8Fn_R5Q"; // if nothing's found try { var num:Number = Math.floor(Math.random() * e.value.items.length); videoURL = e.value.items[num].url; trace("loading " + videoURL); } catch (evt:ArgumentError) { trace("ERROR : No Videos For Tag"); } play(videoURL); break; } } private function onError(e:ErrorEvent):void { trace("IOError : " + e ); } private function getList():void { yt.videosForTag("lego"); } private function play(url:String):void { trace("playing"); player.loadVideoByUrl(url); } private function onPlayerEnded(event:Event):void { trace("getting a new video"); getList(); } } }