<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Maestros del Web &#187; Elder V&aacute;squez Rettis</title>
	<atom:link href="http://www.maestrosdelweb.com/author/elder-vasquez/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.maestrosdelweb.com</link>
	<description>Un espacio para los entusiastas del web</description>
	<pubDate>Wed, 15 Oct 2008 03:40:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Utilización de filtros con ActionScript en FLASH 8</title>
		<link>http://www.maestrosdelweb.com/editorial/filtrosflash/</link>
		<comments>http://www.maestrosdelweb.com/editorial/filtrosflash/#comments</comments>
		<pubDate>Tue, 04 Jul 2006 00:00:00 +0000</pubDate>
		<dc:creator>Elder V&#225;squez Rettis</dc:creator>
		
		<category><![CDATA[Desarrollo Web]]></category>

		<category><![CDATA[Editorial]]></category>

		<category><![CDATA[Flash]]></category>

		<category><![CDATA[Software Propietario]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Descubre a través de este artículo, una forma más sencilla de utilizar los filtros con ActionScript en Flash 8, los cuales son muy similares a Adobe Photoshop.
  Una de las novedades que nos  trajo FLASH 8 son los filtros muy similares a Adobe Photoshop como desenfoque,  bisel, iluminaci&#243;n y sombreado, entre otros. [...]]]></description>
			<content:encoded><![CDATA[<p><span class="intro">Descubre a través de este artículo, una forma más sencilla de utilizar los filtros con ActionScript en Flash 8, los cuales son muy similares a Adobe Photoshop.</span><span id="more-342"></span></p>
<p>  Una de las novedades que nos  trajo FLASH 8 son los filtros muy similares a Adobe Photoshop como desenfoque,  bisel, iluminaci&oacute;n y sombreado, entre otros. <br />
Para poder accesar a estos  filtros de FLASH hay que importar el paquete flash.filters.* para todos ellos,  pero sin embargo podemos llamar los necesarios:</p>
<p>import flash.filters*</p>
<p><img src="http://www.maestrosdelweb.com/images/editorial/filtros.jpg" alt="filtros" width="500" height="364" class="lateral" /> </p>
<p>Las ventajas ya son  m&aacute;s que conocidas, el simple hecho de poder realizar efectos que antes  ameritaban tener im&aacute;genes adicionales para dar un toque m&aacute;s orientado al  dise&ntilde;o.</p>
<p> Una de las cosas que podr&iacute;amos  mencionar que complica las cosas es que tenemos que tener el player 8, pero  como ya saben el mismo flash crea c&oacute;digo para obligar al visitante a tener una <a href="http://www.eldervaz.com/player">versi&oacute;n mayor</a>.</p>
<p> Inicialmente hice este art&iacute;culo  para entender a grandes rasgos las bondades de los filtros con ActionScript,  porque el hecho de usar c&oacute;digo para generar los efectos, brinda la posibilidad  de hacer animaciones.</p>
<p> Comprender esta forma de trabajar  es simple, pasaremos a explicar parte por parte s&oacute;lo el primer efecto:</p>
<h4>Importamos el paquete a usar</h4>
<div class="codigo">
<pre>import flash.filters* </pre>
</div>
<h4>Le damos los valores iniciales:</h4>
<div class="codigo">
<pre>var distancia:Number = 15;//Distancia de la sombra
var angulo:Number = 45;// angulo de la sombra
var color = 0x000000;// color de la sombra
var alpha:Number = 0.9;//ALPHA pero valor maximo 1
var blurX:Number = 16;//blur del eje X maximo 255
var blurY:Number = 16;//igual q blurX
var fuerza:Number = 1;//la fuerza de impresion de la sombra MAX 255
var calidad:Number = 3;//calidad de la sombra, valores validos: 1-2-3
var sombra_interior:Boolean = false;//obvio
var fondo_transparente:Boolean = false;//obvio
var ocultar_mc:Boolean = false; //obvio</pre>
</div>
<h4>Creamos nuestro constructor de la clase       importada o deseada:</h4>
<div class="codigo">
<pre>var t:DropShadowFilter = new DropShadowFilter(
	distancia,
	angulo,
	color,
	alpha,
	blurX,
	blurY,
	fuerza,
	calidad,
	sombra_interior,
	fondo_transparente,
	ocultar_mc
	);</pre>
</div>
<h4>Ahora, insertamos en forma de ARREGLO a       nuestra instancia del filtro usado:</h4>
<div class="codigo">
<pre>var array1:Array = new Array();
array1.push(t);
mc.filters = array1;</pre>
</div>
<h4>CONTROL + ENTER&nbsp; </h4>
<p>Realmente, no es muy complicado  entendiendo bien el uso de cada par&aacute;metro, aqu&iacute; les dejo el c&oacute;digo de varios  filtros al mismo tiempo: </p>
<div class="codigo">
<pre>import flash.filters.*;
      //----------------------------------
      var distancia:Number = 15;//Distancia de la sombra
      var angulo:Number = 45;// angulo de la sombra
      var color = 0x000000;// color de la sombra
      var alpha:Number = 0.9;//ALPHA pero valor maximo 1
      var blurX:Number = 16;//blur del eje X maximo 255
      var blurY:Number = 16;//igual q blurX
      var fuerza:Number = 1;//la fuerza de impresion de la sombra MAX 255
      var calidad:Number = 3;//calidad de la sombra, valores validos: 1-2-3
      var sombra_interior:Boolean = false;//obvio
      var fondo_transparente:Boolean = false;//obvio
      var ocultar_mc:Boolean = false; //obvio
      //sombra------------------------------------------------------------
	var t = new DropShadowFilter(distancia
			angulo,
			color,
			alpha,
			blurX,
			blurY,
			fuerza,
			calidad,
			sombra_interior,
			fondo_transparente,
			ocultar_mc);
		var array1:Array = new Array();
		array1.push(t);
		mc.filters = array1;
	//relieve------------------------------------------------------------
	color1 = 0xFFFF00;
	color2 = 0x0000FF;
	alpha1 = 0.8;alpha2 = 0.8;
	bisel = &quot;inner&quot;;//Tipo de bisel. Los valores v&aacute;lidos son    &quot;inner&quot;, &quot;outer&quot; y &quot;full&quot;
	var r = new BevelFilter(
		distancia,
		angulo,
		color1,
		alpha1,
		color2,
		alpha1,
		blurX,
		blurY,
		fuerza,
		calidad,
		bisel,
	ocultar_mc);
	var array2:Array = new Array();
	array2.push(r);
	mc2.filters = array2;
	//blur------------------------------------------------------------
	var u = new BlurFilter(blurX, blurY-16, calidad);
	ar array3:Array = new Array();
	array3.push(u);
	mc3.filters = array3;
	//iluminacion------------------------------------------------------------
	inner_p=false
	var p = new    GlowFilter(
		color,
		alpha,
		blurX,
		blurY,
		fuerza,
		calidad,
		inner_p,
	ocultar_mc);
	var array4:Array = new Array();
	array4.push(p);
	mc4.filters = array4;
	//resplandor1------------------------------------------------------------
	var colors:Array = [0xff0000, 0x000000, 0xff00ff];
	var alphas:Array = [0.5, 0, 0.5];
	var ratios:Array = [0, 128, 255];
	angulo_luz=45;
	distancia_z=5;
	blurX_z=5;
	blury_z=5;
	fuerza_z=5;
	calidad_z=2;
	var z = new GradientBevelFilter(distancia_z,
		angulo_luz,
		colors,
		alphas,
		ratios,
		blurX_z,
		blurY_z,
		fuerza_z,
		calidad_z,
		bisel,
	ocultar_mc);
	var array5:Array = new Array();
	array5.push(z);
	mc5.filters = array5;
	//resplandor2
	var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF];
	var alphas:Array = [0, 1, 1, 1];
    var ratios:Array = [0, 63, 126, 255];
	var n = new GradientGlowFilter(0,
		45,
		colors,
		alphas,
		ratios,
		55,
		55,
		2.5,
		2,&quot;outer&quot;,
	ocultar_mc);
	var array6:Array = new Array();
	array6.push(n);
	mc6.filters = array6;</pre>
</div>
<p>Espero les sirva, aqu&iacute; les dejo  el <a href="http://www.maestrosdelweb.com/editorial/util/filtros.zip">ejemplo</a>. No se olviden de  dejar sus comentarios para conocer sus impresiones del art&iacute;culo. </p>
<p> Este art&iacute;culo fue publicado originalmente en&nbsp; <a href="http://www.eldervaz.com/filtros.htm">eldervaz.com</a> por elder h. v&aacute;squez rettis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/filtrosflash/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tutorial de precargas múltiples</title>
		<link>http://www.maestrosdelweb.com/editorial/precargamul/</link>
		<comments>http://www.maestrosdelweb.com/editorial/precargamul/#comments</comments>
		<pubDate>Tue, 14 Feb 2006 00:00:00 +0000</pubDate>
		<dc:creator>Elder V&#225;squez Rettis</dc:creator>
		
		<category><![CDATA[Editorial]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[En más de una ocasión hemos necesitado de las precargas (mal necesario), y muchas veces tenemos que cargar más de una SWF o JPG externamente y bueno.
No es &#243;ptimo poner el preload en el swf externo, as&#237; que aqu&#237; les dejo un preload reutilizable para cualquier momento. La idea la surge a partir de leer [...]]]></description>
			<content:encoded><![CDATA[<p><span class="intro">En más de una ocasión hemos necesitado de las precargas (mal necesario), y muchas veces tenemos que cargar más de una SWF o JPG externamente y bueno.</span><span id="more-137"></span></p>
<p>No es &oacute;ptimo poner el preload en el swf externo, as&iacute; que aqu&iacute; les dejo un preload reutilizable para cualquier momento. La idea la surge a partir de leer <a href="http://www.cristalab.com/tutoriales/3/precargas_en_flash_mx">tutorial de Freddie&reg; </a> as&iacute; que recomiendo darle un vistazo para tener las cosas claras desde un inicio. </p>
<div class="codigo">
<pre>var  vacio: MovieClip  = this . createEmptyMovieClip ("vacio", 1);
vacio. _x  = 80;
var  loop: MovieClip  = this . createEmptyMovieClip ("loop", 0);
var  vacio: MovieClip ;
linea. _xscale  = 0;
reloj. _alpha =0 

//--------------------------------> mi funcion precarga
function  cargador(foto) {
 vacio. loadMovie (foto);
 reloj. _alpha =100
 loop. onEnterFrame  = function () {
  total = vacio. getBytesTotal ();
  cargados = vacio. getBytesLoaded ();
  t = Math . floor ((cargados*100)/total);
  campo. text  = t;
  linea. _xscale  = t;
  reloj. gotoAndStop (t);
   if (t>=100) {
     delete  loop. onEnterFrame ;
     campo. text  = "";
     linea. _xscale  = 0;
     reloj. _alpha =0;
   }
  };
 } 

//---------------------------------> botones que llaman la función
b1. onPress  = function () {
    cargador("foto1.jpg");
};
b2. onPress  = function () {
    cargador("foto2.jpg");
};
b3. onPress  = function () {
    cargador("foto3.jpg");
};</pre>
</div>
<p>Bien, ahora les explicare un poco, si leyeron el <a href="http://www.cristalab.com/tutoriales/3/precargas_en_flash_mx">tutorial d<strong>e </strong>Freddie&reg; </a> ver&aacute;n que es CASI similar, los cambios son sencillo, s&oacute;lo en vez de usar _root uso un MC (movieclip) para cargar dentro los jpg o swf externos que queramos. C&oacute;mo as&iacute;? bueno con una funci&oacute;n llamada cargador, que recibe de par&aacute;metro el nombre de lo que vamos a cargar. </p>
<p>Adem&aacute;s, aqu&iacute; estoy utlizando onEnterFrame y un if para detener el onEnterFrame. </p>
<p>Despu&eacute;s lo que debemos hacer, es llamar desde nuestro bot&oacute;n a nuestra funci&oacute;n y pasarle el nombre del archivo que deseamos precargar. </p>
<div class="codigo">
<pre>b1. onPress  = function () {
    cargador( "foto1.jpg" );
};</pre>
</div>
<p>Eso es todo, en este caso use _xscale para hacer mi barrita preload, o usar el reloj para una animaci&oacute;n mas personalizada. </p>
<p>Espero les sirva, aqu&iacute; les dejo el <a href="http://www.eldervaz.com/precarga/cargador.zip">zip </a> y para ver el ejemplo <a href="http://www.eldervaz.com/precarga/cargador.html">aqui </a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/precargamul/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Controlando el video en Flash</title>
		<link>http://www.maestrosdelweb.com/editorial/flvideo2/</link>
		<comments>http://www.maestrosdelweb.com/editorial/flvideo2/#comments</comments>
		<pubDate>Mon, 19 Sep 2005 00:00:00 +0000</pubDate>
		<dc:creator>Elder V&#225;squez Rettis</dc:creator>
		
		<category><![CDATA[Editorial]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La ventaja de utilizar esta tecnología, es que nos permite escuchar y visualizar los archivos de audio y/o video mientras se van descargando en nuestros ordenadores, evitando así, la larga espera de tener nuestro archivo completo.

Ha pasado un a&#241;o desde que publiqu&#233; el primer tutorial de FLV . A partir de eso he recibo varios [...]]]></description>
			<content:encoded><![CDATA[<p><span class="intro">La ventaja de utilizar esta tecnología, es que nos permite escuchar y visualizar los archivos de audio y/o video mientras se van descargando en nuestros ordenadores, evitando así, la larga espera de tener nuestro archivo completo.</span><span id="more-305"></span></p>
<p><!-- Inicio contenidos --></p>
<p>Ha pasado un a&ntilde;o desde que publiqu&eacute; el primer <a href="http://www.maestrosdelweb.com/editorial/flvideo/">tutorial de FLV </a>. A partir de eso he recibo varios mails pregunt&aacute;ndome cosas al respecto, por lo que decid&iacute; hacer una ampliaci&oacute;n del tema. </p>
<p>Es importante que para leer este nuevo tutorial, hayas pasado por el <a href="http://www.maestrosdelweb.com/editorial/flvideo/">primer tutorial introductorio </a>, as&iacute; que manos al flash. Es preciso recordarte que el c&oacute;digo que a continuaci&oacute;n veremos s&oacute;lo es aplicable a <a href="http://www.macromedia.com/es/software/flash/">Macromedia Flash 2004 </a>, y NO SE PUEDE USAR en versiones anteriores, <img src='http://www.maestrosdelweb.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> no insistir. </p>
<div class="codigo">
<pre>var conexion:NetConnection = new NetConnection();
		conexion.connect(null);
		var stream:NetStream = new NetStream(conexion);
		mi_video.attachVideo(stream);		stream.play(&quot;tu.flv&quot;);		//aseguramos 10 seg de reproduccion		stream.setBufferTime(10);		onEnterFrame = function () {		bu_cargado.text = stream.bufferLength;		bu_total.text = Math.round(stream.bytesTotal/1024)/1000+&quot; mb&quot;;
	};
//botones_----------------------------------- 
        seg.restrict=1-9// solo aceptamos numeros         btn1.onPress = function() {         stream.play(&quot;tu.flv&quot;);         };         btn1_1.onPress = function() {         stream.close();         };         btn2.onPress = function() {         stream.pause();         //obvio, para hacer pausa, ojo q es lo mismo para avanzar         }; 
        btn3.onPress = function() {         stream.seek(0);         // va al inicio (cero segundos)         };         btn4.onPress = function() {         stream.seek(seg.text);         // va al segundo q nosotros escribamos         };         //status         stream.onStatus = function(infoObject:Object) {         if (infoObject.code == &quot;NetStream.Play.Stop&quot;) {         trace(&quot;acabo&quot;);         }         if (infoObject.code == &quot;NetStream.Play.StreamNotFound&quot;) {         trace(&quot;encontro error&quot;);         }         }; </pre>
</div>
<p>Aqu&iacute; lo &uacute;nico nuevo son las l&iacute;neas de status, que nos permitir&aacute; tener un control dependiendo de lo que suceda con nuestro video FLV. Los siguientes eventos, env&iacute;an una notificaci&oacute;n que informan, s&iacute; ocurren ciertas actividades de NetStream (esto tambi&eacute;n est&aacute; en la ayuda de flash). </p>
<table cellspacing="2" cellpadding="0">
<tr>
<td valign="top" class="txt"><strong>Propiedad Code </strong></td>
<td valign="top" class="txt"><strong>Propiedad Level </strong></td>
</tr>
<tr>
<td valign="top" class="txt">
<p>NetStream.Buffer.Empty </p>
</td>
<td valign="top" class="txt">
<p>Status </p>
</td>
</tr>
<tr>
<td valign="top" class="txt"><em>No se reciben datos con la rapidez suficiente como para que el b&uacute;fer se llene. El flujo de datos se interrumpe hasta que el b&uacute;fer vuelve a estar lleno; en ese momento se env&iacute;a un mensaje NetStream.Buffer.Full y el flujo se reanuda. </p>
<p>    </em></td>
<td valign="top" class="txt">&nbsp;</td>
</tr>
<tr>
<td valign="top" class="txt">
<p>NetStream.Buffer.Full </p>
</td>
<td valign="top" class="txt">
<p>Status </p>
</td>
</tr>
<tr>
<td valign="top" class="txt"><em>El b&uacute;fer est&aacute; lleno y el flujo va a iniciarse. </p>
<p>    </em></td>
<td valign="top" class="txt">&nbsp;</td>
</tr>
<tr>
<td valign="top" class="txt">
<p>NetStream.Play.Start </p>
</td>
<td valign="top" class="txt">
<p>Status </p>
</td>
</tr>
<tr>
<td valign="top" class="txt"><em>Ha comenzado la reproducci&oacute;n. </p>
<p>    </em></td>
<td valign="top" class="txt">&nbsp;</td>
</tr>
<tr>
<td valign="top" class="txt">
<p>NetStream.Play.Stop </p>
</td>
<td valign="top" class="txt">
<p>Status </p>
</td>
</tr>
<tr>
<td valign="top" class="txt"><em>Se ha detenido la reproducci&oacute;n. </p>
<p>    </em></td>
<td valign="top" class="txt">&nbsp;</td>
</tr>
<tr>
<td valign="top" class="txt">
<p>NetStream.Play.StreamNotFound </p>
</td>
<td valign="top" class="txt">
<p>Error </p>
</td>
</tr>
<tr>
<td valign="top" class="txt"><em>No se ha podido encontrar el archivo FLV que se ha pasado al m&eacute;todo play(). </em></td>
<td valign="top" class="txt">&nbsp;</td>
</tr>
</table>
<p>En espa&ntilde;ol esto ser&iacute;a as&iacute;: </p>
<p>Cuando el video acabo el estado del video ser&aacute;: NetStream.Play.Stop y en este caso estamos haciendo un trace con un mensaje, pero quiz&aacute;s lo optimo ser&iacute;a mandarlo a un frame espec&iacute;fico o reiniciar el video. Del mismo modo NetStream.Play.StreamNotFound nos indica que existi&oacute; alg&uacute;n problema con el video y devuelve un mensaje de error. </p>
<h3>Elegir varios videos </h3>
<p>Ahora hagamos algo mejor, usando nuestro tutorial de <a href="http://www.cristalab.com/tutoriales/45/tutorial_de_uso_del_componente_combobox_de_flash_mx_2004">combobox </a> haremos un visor de varios videos, lo &uacute;nico es agregar estas l&iacute;neas al final de nuestro c&oacute;digo y un componente combobox al archivo: .fla. </p>
<div class="codigo">
<pre>mi_combo.addItem(&quot;video_1&quot;, 0); 

        mi_combo.addItem(&quot;video_2&quot;, 1); 
        mi_combo.addItem(&quot;video_3&quot;, 2); 
        alSeleccionar = new Object(); 
        alSeleccionar.change = function(evento) { 
        trace(&quot;Has seleccionado &quot;+evento.target.value); 

        switch (evento.target.value) { 
        case 0 :stream.play(&quot;tu.flv&quot;); 
        break; 
        case 1 :stream.play(&quot;yo.flv&quot;); 
        break; 

        case 2 :stream.play(&quot;el.flv&quot;); 
        break; 
        } 
        };
        //Listeners para cuando seleccionamos alguna opcion 
        mi_combo.addEventListener(&quot;change&quot;, alSeleccionar); </pre>
</div>
<p>Pr&aacute;cticamente lo que hacemos es agregar a nuestro combobox los nombres que aparecer&aacute;n en nuestro componente y luego llamarlo con un Listener. </p>
<p>Pueden bajarse el <a href="http://www.eldervaz.com/guia_flv.zip">FLA </a> aqu&iacute; y ver el <a href="http://www.eldervaz.com/video3.html">ejemplo </a>. </p>
<p><!-- Fin contenidos --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/flvideo2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Incluyendo video con Flash MX 2004</title>
		<link>http://www.maestrosdelweb.com/editorial/flvideo/</link>
		<comments>http://www.maestrosdelweb.com/editorial/flvideo/#comments</comments>
		<pubDate>Mon, 07 Feb 2005 00:00:00 +0000</pubDate>
		<dc:creator>Elder V&#225;squez Rettis</dc:creator>
		
		<category><![CDATA[Editorial]]></category>

		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Flash MX 2004 nos permite incluir y trabajar con video streaming. En esta guía aprenderemos a utilizar esta tecnología.
Cuando planificamos una web, siempre nos preguntamos si es conveniente colocar video dentro de los contenidos. Actualmente tenemos muchas formas de incluir estos contenidos, destacando la utilizaci&#243;n de Flash por su facilidad para utilizar tecnolog&#237;a streaming. Antes [...]]]></description>
			<content:encoded><![CDATA[<p><span class="intro">Flash MX 2004 nos permite incluir y trabajar con video streaming. En esta guía aprenderemos a utilizar esta tecnología.</span><span id="more-292"></span></p>
<p>Cuando planificamos una web, siempre nos preguntamos si es conveniente colocar video dentro de los contenidos. Actualmente tenemos muchas formas de incluir estos contenidos, destacando la utilizaci&oacute;n de Flash por su facilidad para utilizar tecnolog&iacute;a streaming. Antes de continuar, explicaremos a grosso modo algunos conceptos b&aacute;sicos: </p>
<h3>Streaming:</h3>
<p>El streaming nos permite escuchar y visualizar los archivos de audio y/o video mientras se van descargando en nuestros ordenadores, evitando as&iacute;, la larga espera que se requiere para obtener un archivo completo.</p>
<p>El streaming funciona de una manera muy simple: nuestro ordenador al detectar un archivo con esta tecnolog&iacute;a, comienza a descargarlo y va creando un buffer donde comienza a guardar la informaci&oacute;n, una vez que este buffer contenga una peque&ntilde;a parte de los datos empezar&aacute; a reproducir el audio o video mientras contin&uacute;a el resto de la descarga. El Real Player y el Windows Media Player se han popularizado por el uso de esta tecnolog&iacute;a, aunque para incluir contenidos en nuestras p&aacute;ginas web de cualquiera de estos players, necesitamos que el navegador tenga instalados los plug-ins.</p>
<h3>Video en Flash vs otros reproductores con streaming:</h3>
<p>En m&aacute;s de una ocasi&oacute;n hemos tenido la oportunidad de ver video en web, y en muchas de estas, lo hicimos utilizando alg&uacute;n programa de streaming. Si bien es funcional si tenemos el plug-in instalado, no sucede lo mismo cuando nuestro usuario no lo tiene y vamos a darle la tarea adicional de bajarlo e instalarlo para poder apreciar el video, acto que puede demorar unos minutos sagrados en Internet. </p>
<p>Con el caso de los videos que se muestran gracias a Flash tambi&eacute;n necesitamos que el usuario tenga el plugin del Flash Player. Pero la gran ventaja es que el flash player plugin se encuentra disponible en el 98% de computadoras que acceden a Internet pues viene preinstalado en la mayor&iacute;a de navegadores </p>
<h3>Formatos permitidos con Macromedia Flash</h3>
<p><img src="/images/editorial/flvideo_2.gif" alt="Formatos de video" width="101" height="74" class="lateral"/>Con Macromedia Flash a partir de la versi&oacute;n MX 2004 podemos importar un video de diferentes formatos: </p>
<p>Si tienes instalado QuickTime 4 o posterior (Windows y Macintosh), pueden importarse los siguientes formatos de archivo de v&iacute;deo incorporado: </p>
<table cellpadding="1" cellspacing="1" style="border-color:#E6E6E6">
<tbody>
<tr bgcolor="#bbe9ff" class="txtart">
<th><strong>Tipo de Archivo </strong></th>
<th><strong>Extensi&oacute;n</strong></th>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Audio Video Interleaved </td>
<td>.avi</td>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Digital Video </td>
<td>dv</td>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Motion Picture Experts Group </td>
<td>.mpg, .mpeg</td>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Pel&iacute;cula QuickTime </td>
<td>.mov</td>
</tr>
</tbody>
</table>
<p>Si tienes instalado DirectX 7 o posterior (s&oacute;lo en Windows), pueden importarse los siguientes formatos de archivo de v&iacute;deo incorporado</p>
<table cellpadding="1" cellspacing="1" style="border-color:#E6E6E6">
<tbody>
<tr bgcolor="#bbe9ff" class="txtart">
<th><strong>Tipo de Archivo </strong></th>
<th><strong>Extensi&oacute;n</strong></th>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Audio Video Interleaved </td>
<td>.avi</td>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Motion Picture Experts Group </td>
<td>.mpg, .mpeg</td>
</tr>
<tr bgcolor="#FFFFFF" class="txtart">
<td> Archivo de Windows Media</td>
<td>.wmv, .asf</td>
</tr>
</tbody>
</table>
<h3>Formato FLV</h3>
<p><img src="/images/editorial/flvideo_1.gif" alt="Flash video" width="60" height="50" class="lateral"/>As&iacute; como podemos importar video en Macromedia Flash, tambi&eacute;n podemos exportar un video ya introducido en nuestra librer&iacute;a, guard&aacute;ndolo con la extensi&oacute;n FLV que representa las siglas de Flash Video, formato al que en la versi&oacute;n de Flash MX s&oacute;lo se ten&iacute;a acceso con Flash Comunication Server.</p>
<p>Los FLV son archivos de video comprimidos con el c&oacute;dec de video Sorenson Spark que nos<br />
  garantiza su perfecto funcionamiento.</p>
<p>Sorenson Spark es un c&oacute;dec de v&iacute;deo en movimiento, incluido en Flash y que permite a&ntilde;adir contenido de v&iacute;deo incorporado a Flash. Spark es un codificador/decodificador de v&iacute;deo de alta calidad que disminuye enormemente el ancho de banda necesario para publicar im&aacute;genes en Flash y al mismo tiempo, aumenta la calidad de v&iacute;deo. Con la inclusi&oacute;n de Spark, Flash da un importante paso hacia adelante en materia de capacidad de v&iacute;deo. En Flash 5 o anteriores s&oacute;lo se pod&iacute;a simular v&iacute;deo mediante im&aacute;genes secuenciales de mapa de bits.</p>
<h3>Importando video en Flash</h3>
<ol>
<li> Abrimos Macromedia Flash MX 2004</li>
<li>Importamos con &lt;CTRL&gt; + R y buscamos nuestro video.</li>
<li>Nos aparece la ventana del asistente con dos opciones:</li>
</ol>
<ul>
<li>Importar todo el video</li>
<li> Editar primero el video, que nos permite cortar y/o hacer peque&ntilde;os clip de nuestro video en cuesti&oacute;n, y muy f&aacute;cil de aplicar y lo veremos en el anexo 1.</li>
</ul>
<ol>
<li>Suponiendo q nuestro video ya este editado, le damos a la primera opci&oacute;n (importar todo el video). </li>
<li> Nos aparece Perfil de compresi&oacute;n, para nuestro ejemplo escogemos 512, le damos al bot&oacute;n EDICI&Oacute;N. Las opciones para personalizar el ancho de banda van de 0 Kbps a 750 Kbps, y especifican la velocidad aproximada de descarga del v&iacute;deo, en kilobits por segundo. La configuraci&oacute;n de calidad de v&iacute;deo, que oscila entre 0 y 100, especifica el nivel de compresi&oacute;n de todos los fotogramas. Tambi&eacute;n es posible especificar una velocidad de fotogramas clave. La velocidad de descarga puede variar para lograr un nivel de compresi&oacute;n uniforme. Como ver&aacute;n, podemos jugar con el ancho de banda y la calidad, acto que nos permite manejar el peso de nuestro FLV. Pero en este caso, no moveremos nada, seleccionando el bot&oacute;n atr&aacute;s. </li>
<li> Ahora veamos Configuraci&oacute;n Avanzada, y vamos al bot&oacute;n EDICI&Oacute;N. Como todo en Flash MX 2004 es importante, obviaremos algunas cosas para centrarnos en la parte que tiene relevancia aqu&iacute;: utilizaremos donde dice ESCALA para modificar el tama&ntilde;o en que se apreciar&aacute; nuestro video. Mi recomendaci&oacute;n exagerando un poco es poner 300px o en todo caso seguir los lineamientos de acuerdo al dise&ntilde;o que ya se tiene planificado. Tenemos una vista previa que nos ayuda en todo momento. Pulsamos el bot&oacute;n siguiente.</li>
<li>Ponemos nombre a nuestra configuraci&oacute;n con una descripci&oacute;n para recordarlo en otro momento. Bot&oacute;n Siguiente. </li>
<li> Y se&ntilde;ores, el esperado FINALIZAR.</li>
</ol>
<p>Nos saldr&aacute; un mensaje diciendo que necesitamos m&aacute;s fotogramas para nuestro video, seleccionando que SI. Apreciaremos que tenemos nuestro video en la l&iacute;nea de tiempo y en la librer&iacute;a apareci&oacute; un nuevo elemento con icono de c&aacute;mara de video. Ese es nuestro VIDEO INCORPORADO, que aun no es FLV, detalle que cambiaremos en el siguiente paso.</p>
<ol>
<li>Abrimos nuestra librer&iacute;a o biblioteca y le damos clic derecho a nuestro video incorporado, vamos a propiedades y escogemos EXPORTAR, le damos la RUTA donde guardar nuestro FLV y listo. </li>
</ol>
<p>Bien, tenemos nuestro FLV y ahora tenemos que reproducirlo, habiendo dos formas b&aacute;sicas de hacerlo: utilizando el componente MediaPlayBack o a trav&eacute;s de ActionScript puro. </p>
<h3>Con componente</h3>
<ol>
<li>Abrimos nuestro Flash MX 2004 y pulsamos &lt;CTRL&gt; + F7 </li>
<li>Se ver&aacute; la ventana de Componetes, seleccionando el (+) de MEDIA COMPONENTES y arrastramos al escenario o stage el componente MEDIAPLAYBACK. </li>
<li>Teniendo seleccionado el componente pulsamos &lt;ALT&gt; + F7 </li>
<li>Se ver&aacute; la ventana del Inspector de Componentes, teniendo la pesta&ntilde;a Par&aacute;metros seleccionada podemos escoger entre FLV o MP3, le damos FLV </li>
<li>En URL colocamos la direcci&oacute;n de nuestro archivo FLV (a Flash MX 2004 le falto una opci&oacute;n para examinar). Si esta en el mismo nivel de nuestro SWF solo escribimos: video.flv y si est&aacute; en una carpeta le ponemos: mi_carpeta/video.flv </li>
</ol>
<p><img src="/images/editorial/flvideo.jpg" alt="Player" width="307" height="204" class="centro"/></p>
<p>Y ahora corre tu Flash para verlo funcionar.
</p>
<h3>Con ActionScript</h3>
<p>Antes de empezar, prepararemos todo en el flash para cargar el FLV externo: </p>
<ol>
<li>Abrimos nuestro Macromedia Flash 2004 y apretamos &lt;CTRL&gt; + L, para abrir la librer&iacute;a o biblioteca </li>
<li>Y en la pesta&ntilde;a superior derecha de la ventana le damos a NUEVO VIDEO </li>
<li>Vemos que en la librer&iacute;a apareci&oacute; un objeto nuevo con nombre por defecto &quot;Video Incorporado&quot; </li>
<li>Arrastramos este objeto a nuestro escenario y le colocamos nombre de instancia &quot;mi_video&quot; </li>
</ol>
<p>Para esta forma de cargar un video FLV usaremos el siguiente c&oacute;digo: </p>
<div class="codigo">
<pre>var conexion:NetConnection = new NetConnection();
conexion.connect(null);
var stream:NetStream = new NetStream(conexion);
mi_video.attachVideo(stream);
stream.play("video.flv");</pre>
</div>
<p> Y ya tenemos todo listo, probemos la pel&iacute;cula. </p>
<h3>Explicaci&oacute;n del c&oacute;digo:</h3>
<p>Se crea la instancia &quot;conexi&oacute;n&quot; de la clase NetConnection que proporciona los medios para reproducir archivos FLV de flujo desde una unidad local o una direcci&oacute;n HTTP. </p>
<p>Con conexion.connect(null); abre una conexi&oacute;n local mediante la que puede reproducir archivos de v&iacute;deo (FLV) desde una direcci&oacute;n HTTP o desde el sistema de archivos local. </p>
<p>Creamos una instancia &quot;stream&quot; de la Clase NetStream que proporciona m&eacute;todos y propiedades para reproducir archivos de Flash Video (FLV) del sistema de archivos local o de una direcci&oacute;n http </p>
<p>Ahora asociamos la instancia stream a nuestro objeto mi_video del escenario </p>
<p>Y terminamos con el m&eacute;todo play() del objeto NetStream d&aacute;ndole la ruta de nuestro FLV </p>
<p><a href="http://www.eldervaz.com/guia_flv.zip">Descarga aqu&iacute; el .FLA </a> que usa s&oacute;lo actionScript </p>
<p>  <a href="http://www.eldervaz.com/guia_flv_componente.zip">Descarga aqu&iacute; el .FLA </a> con ambas formas (AS y componente)</p>
<p>Pueden ver un ejemplo de video FLV que bajo de 112 mb a 1.7 mb <a href="http://www.eldervaz.com/video.html">aqui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.maestrosdelweb.com/editorial/flvideo/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
