[SWF(width="550",height="440",frameRate="42")] var videoContainer:Sprite = new Sprite(); var moogaloop:Sprite; // the video player var moogaplayer:*; // reference to the moogaloop api var player_width :int = 550; var player_height:int = 400; var _loading:Boolean = false; function open ( $id:String ) : void { if(moogaplayer){ moogaplayer.api_loadVideo( $id ); }else{ loadPlayer( $id ); } } function playVideo ( ) : void { if(moogaplayer){ moogaplayer.api_play( ); } } function stopVideo ( ) : void { if(moogaplayer){ moogaplayer.api_unload( ); } } function loadPlayer ( $id:String) : void { var v_loader:Loader = new Loader(); var v_request:URLRequest = new URLRequest("http://bitcast.vimeo.com/vimeo/swf/moogaloop.swf?server=vimeo.com&force_embed=0&clip_id=" + $id + "&width=" + player_width + "&height=" + player_height); v_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); v_loader.load(v_request); } function close () : void { this.visible = false; moogaloop.alpha = 0; if(moogaplayer) moogaplayer.api_unload(); } function onCompleteHandler(e:Event):void { moogaloop = new Sprite(); // Position the player where you want it moogaplayer = moogaloop.addChild(e.currentTarget.content); // Create the mask for moogaloop var v_mask:Sprite = new Sprite(); with( v_mask.graphics ) { beginFill(0x000000, 1); drawRect(moogaloop.x, moogaloop.y, player_width, player_height); endFill(); } this.addChild(v_mask); moogaloop.mask = v_mask; videoContainer.addChild(moogaloop); } function onProgressHandler(e:ProgressEvent):void { var percent:Number = e.bytesLoaded / e.bytesTotal; trace(percent); } function createButton ( $label:String ) : Sprite { var bt:Sprite = new Sprite(); bt.name = "bt_"+$label; // create the label and add text var txt:TextField = new TextField(); txt.width = 2; txt.height = 0; txt.text = $label; txt.multiline = false; txt.autoSize = TextFieldAutoSize.LEFT; bt.addChild(txt); txt.mouseEnabled = false; // create the background var bg:Shape = createButtonBackgound( 0xcccccc, txt ); bg.name = "bg_normal"; bt.addChildAt( bg, 0 ); var bgOver:Shape = createButtonBackgound( 0x66ccff, txt ); bgOver.name = "bg_over"; bgOver.visible = false; bt.addChildAt( bgOver, 1 ); bt.addEventListener( MouseEvent.MOUSE_OVER, onBtMouse, false, 0, true); bt.addEventListener( MouseEvent.MOUSE_OUT, onBtMouse, false, 0, true); return bt; } function onBtMouse ( $e:MouseEvent ) : void { switch( $e.type ){ case MouseEvent.MOUSE_OVER: $e.target.getChildByName("bg_over").visible = true; break; case MouseEvent.MOUSE_OUT: $e.target.getChildByName("bg_over").visible = false; break; default: trace( $e.target ); trace( $e.type ); break; } } function createButtonBackgound ( $colorOver:uint, $txt:TextField ) : Shape { var bg:Shape = new Shape(); var padding:int = 5; var rnd:int = 6; with(bg){ graphics.beginFill( $colorOver, 1 ); graphics.drawRoundRect(-padding, -padding, $txt.textWidth + padding * 2 + 3, $txt.textHeight + padding * 2, rnd, rnd); graphics.endFill(); } return bg; } function onRandomVideo ( $e:MouseEvent = null ) : void { var randomId:int = int( Math.random()*10000 + 260000) open( String(randomId) ); } function onPlayVideo ( $e:MouseEvent ) : void { if(moogaloop){ playVideo(); }else{ onRandomVideo(); } } function onStopVideo ( $e:MouseEvent ) : void { stopVideo(); } function onRemoveVideo ( $e:MouseEvent ) : void { if(moogaloop){ stopVideo(); videoContainer.removeChild(moogaloop); moogaplayer = null; moogaloop = null; trace("There are ", videoContainer.numChildren, "moogaloop instance(s)." ); } } /* * Application start */ Security.allowDomain("http://bitcast.vimeo.com"); open( "1241590" ); var marginbt:int = 10; var playBt:Sprite = createButton( "Play" ); playBt.addEventListener( MouseEvent.CLICK, onPlayVideo, false, 0, true ); playBt.y = player_height + marginbt; playBt.x = marginbt; this.addChild( playBt ); var stopBt:Sprite = createButton( "Unload" ); stopBt.addEventListener( MouseEvent.CLICK, onStopVideo, false, 0, true ); stopBt.y = player_height + marginbt; stopBt.x = playBt.x + playBt.width + marginbt; this.addChild( stopBt ); var loadVid1:Sprite = createButton( "Load random video" ); loadVid1.addEventListener( MouseEvent.CLICK, onRandomVideo, false, 0, true ); loadVid1.y = player_height + marginbt; loadVid1.x = stopBt.x + stopBt.width + marginbt; this.addChild( loadVid1 ); var removeBt:Sprite = createButton( "Remove" ); removeBt.addEventListener( MouseEvent.CLICK, onRemoveVideo, false, 0, true ); removeBt.y = player_height + marginbt; removeBt.x = loadVid1.x + loadVid1.width + marginbt; this.addChild( removeBt ); this.addChild( videoContainer );