package FlashVideoPro { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class actionscript_video_09_transitions_pro_VideoMC extends MovieClip { private var _vid:Video; private var _nc:NetConnection; private var _ns:NetStream; private var _meta:Object; private var vidName:String; public function actionscript_video_09_transitions_pro_VideoMC(vidName:String) { // Construct NetConnection _nc = new NetConnection(); _nc.connect(null); // Flash is looking for an onMetaData method, route all calls to an object _meta = new Object(); _meta.onMetaData = onMetaData; // Construct NetStream and connect to flow through NetConnection _ns = new NetStream(_nc); _ns.bufferTime = 3; //_ns.play(vidName); // Route all onMetaData calls on NetStream to the metaObject _ns.client = _meta; // Construct video object with dimensions _vid = new Video(240, 180); _vid.attachNetStream(_ns); addChild(_vid); _vid.x = 100; _vid.y = 100; startVideo(vidName); } public function stopVideo():void { trace("stopVideo" + _ns); _ns.close(); } public function startVideo(vidName):void { trace("startVideo" + _ns); _ns.play(vidName); } public function onMetaData(data:Object):void { // Satisfies Flash's need to send metadata with Flash Video // This is considered to be a bug and may be fixed in the final AS3 release } }}