La semana pasada tuve un par de trabajos en los que requeria utilizar un video de flash como fondo y arriba de eso un sitio html puro. Asi que la idea de este mini tutorial es mostrar lo facil que es hacer que el video en flash tome el 100 porciento de la pantalla y se redimencione cuando se cambia el tamano de la pantalla.
1 2 | stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; |
Con la primer linea especificamos que el tamano de la aplicacion flash tiene que se fija y que se mantiene fija incluso si cambia el tamano del explorador.
La segunda linea especifica que el escenario este alineado en la esquina superior izquierda.
1 2 3 | var _netCon :NetConnection = null; var _netStr :NetStream = null; var _video :Video = null; |
NetConnection es un objecto que podemos describir como un tubo entre el cliente y el servidor.
La clase Video muestra un video en la aplicacion sin incrustarlo en el swf. Digamos lo reproduce en un contenedor mediante streaming.
1 2 3 4 5 | function SetupNetConnection() { _netCon = new NetConnection(); _netCon.addEventListener(NetStatusEvent.NET_STATUS, NetStatus, false, 0, true); _netCon.connect(null); } |
Bueno, yahemso creado la conexion y agredado un listener que monitorea el estado de la conexion. el argumento null significa que no estamos conectando a un Flash media server sino que hacemos streaming de un archivo que reside en un servidor normal.
Ahora vamos a crear el stream que vamos a usar par ver el video mediante el objeto NetConnection y vamos a escuchar su estado mediante listener de ese mismo objeto.
1 2 3 4 5 6 7 8 9 10 11 12 | function SetupNetStream() { var $customClient:Object = new Object(); $customClient.onMetaData = onMetaData; _netStr = new NetStream(_netCon); _netStr.client = $customClient; _netStr.addEventListener(NetStatusEvent.NET_STATUS, NetStatus, false, 0, true); _video = new Video(); _video.attachNetStream(_netStr); _video.smoothing = false; addChild(_video); _netStr.play("video.flv"); } |
La funcion onMetaData va ser llamada tan pronto como el objeto NetStream obtenga informacion del archivo FLV.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | function onMetaData($info:Object):void { } function NetStatus($e:NetStatusEvent) { switch ($e.info.code) { case "NetConnection.Connect.Success": SetupNetStream(); break; case "NetStream.Play.Stop": _netStr.seek(0); } } function ResizeAndPosition($e:Event):void { _video.width = stage.stageWidth; _video.height = stage.stageHeight; } stage.addEventListener(Event.RESIZE, ResizeAndPosition, false, 0, true); ResizeAndPosition(null); SetupNetConnection(); |
Y el HTML que contrendria el player serÃa el siguiente:
1 2 3 4 | <!--
*{ margin:0; padding:0; }
-->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" height="100%" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="source.swf" /><embed type="application/x-shockwave-flash" width="100%" height="100%" src="source.swf"></embed></object> |



