Flashvars es un propiedad de Flash Player que ofrece un método eficaz para enviar variables desde HTML al archivos SWF, esta función fue implementada a partir de Flash Player 6, en esta ocasión veremos como utilizarla en AS2 o AS3.
Pasando variables FlashVars
Si estas usando el método tradicional de insertar SWFs, pueden asignarlos en un parámetro adicional al cual deben llamar flashvars y cuyo valor debe contener todas las variables a pasar codificadas en url.
<object width="200" height="100"> <param name="movie" value="movie.swf" /> <param name="FlashVars" value="var1=valor1&var2=valor2" /> <embed src="miSwf.swf" width="100" height="100 FlashVars="var1=valor1&var2=valor2"/> </object>
Si estas utilizando SWFObject, puedes pasar las variables separadas utilizando el método addVariable, entonces el ejemplo anterior se vería de la siguiente forma:
<script type="text/javascript"> var so = new SWFObject("movie.swf", "my", "200", "100", "8", ""); so.addVariable("var1", "valor1"); so.addVariable("var2", "valor2"); so.write("divmovie"); </script>
Accediendo a FlashVars desde AS2
Cuando uno utiliza Flashvars, estas pasan a ser variables del _root de nuestra película principal. Luego podemos acceder de manera sencilla a estas variables anteponiendo la palabra _root.
[as]
trace(_root.var1); // imprime «valor1»
trace(_root.var2); // imprime «valor2»
[/as]
Accediendo a FlashVars desde AS3
En AS3 las variables externas están contenidas en la propiedad LoaderInfo, entonces lo primero es tomar esta propiedad de la cual extraemos las variables contenidas en el método parameters.
[as]
var param:Object = LoaderInfo(this.root.loaderInfo).parameters;
trace(param[«var1»]); // imprime «valor1»
trace(param[«var2»]); // imprime «valor2»
[/as]
Como pueden observar es sencillo de acceder a estas variables, esto es muy practico cuando deseamos comunicar datos entre HTML y Flash.
Comentarios Total 27 comentarios
Publicado: 21/05/2008 3:50 pm
Hola. quería agradecerte pues, despues de muchas horas, por fin logré aprender a tomar el valor de una variable dentro de flash, despues de que se envía usando addvariable.
Tanks!!
Publicado: 19/08/2008 9:48 am
A saber cuánto tiempo pude estar intentando esto en AS3. ¡Muchas gracias!
Publicado: 15/01/2009 12:13 pm
Buenísimo, y simple. El sitio que mejor lo explica.
Muchas Gracias por el aporte.
Publicado: 31/01/2009 6:08 pm
Muchisimas gracias por el codigo!
Publicado: 10/03/2009 7:34 pm
Helloooooo!… Tal vez alguno de vosotros me podría resolver una duda que tengo…. Cómo hago para pasar las FlashVars no a la peli que estoy haciendo embed, sino a un level nuevo que estoy cargando a partir de la pelicula madre…. No se si me explique?…….. Se puede?????????
Help!….
Publicado: 10/03/2009 8:29 pm
Todas las variables pasadas por flashvars pertenecen al _root, entonces desde cualquier nivel de tu flash puedes acceder a ellas mediante: _root.flashvar
Publicado: 15/04/2009 9:50 pm
Simple,
corto,
conciso,
bien explicado.
Gracias
Ps: no se nada de ActionScript pero con tu post solucione un problema… :D
Publicado: 04/05/2009 10:58 am
HOla alguien sabe por que no me funciona con mozzila??
Funciona a la perfecion con IE pero no con mozzila como puedo hacer para que funcione con todos los navegadores??.
Publicado: 13/05/2009 2:18 am
Haber un problema que tengo…
Quiero cojer una variable, que es la direccion del video, que defino en el html para meterla en el reproductor flash de manera que la coja segun cambie. no se si me he esxplikado bien, asique lo explico un poco en codigo como seria.
******* Codigo [ HTML ] ******
…
AC_FL_RunContent(
‘codebase’, ‘http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,2,0’,
…..
‘FlashVasr’, ‘urlVar=rtmp://flash.csa.es:80/VideosDiferido/CJB.FOROBURGOS2009.Presentacion.384×288’
}; //end AC code.
**************************
Esa flash var hay definida es la que kiero meter aqui:
******Codigo (Como deveria ir) [ Flash AS3******
//Definida la variable y todo
proyect.source = FlashVar
************************
Ya se que no se pone asi, pero es para que me entendais como tiene que ir… si es que es posible, ya he probado con casi todo pero no hay manera… me muerooooo
PD: Soy nuevo en AS3 xDD
Publicado: 13/05/2009 7:10 am
Me gustaria que me ayudarais, estoy trabajando en un reproductor flash (AS3) y kiero cojer una variable que defino en el HTML con FlashVars que es la url del video, y meter esa variable en el codigo AS3 para que sea el «source» del video.
no se si me he explicado bien, espeor vuestra ayuda, un saludo
Publicado: 02/06/2009 6:14 pm
Excelente explicación!
Y aún no empiezo con el uso de AS3, pero mejor saberlo desde ahora!
Gracias.
Publicado: 09/06/2009 7:01 pm
hola, vi que tu explicación es muy sencilla y clara, pero yo tengo una duda como puedo hace le proceso al reves, en vez de enviar valores a un swf, como hacerlo al reves, por ejemplo que me escriban un texto en un textInput y mediante un boton de flash enviarlo a una variable de javascript en mi html?
gracias si puedes contestarme a mi correo te lo agradeceré infinitamente =)
teufel_der_dunkelheit@hotmail.com
Publicado: 09/06/2009 10:53 pm
Manuel, para comunicar Flash con Javascript lo puedes hacer utilizando la clase ExternalInterface, para leer mas sobre este método puedes leer: http://blog.unijimpe.net/integrar-flash-y-javascript/
Publicado: 11/06/2009 8:13 am
Hola,
Tengo un contador al que desde HTML se llamaría así:
Pero yo lo que quiero es llamarlo desde dentro de una película flash, o sea, incorporarlo dentro de esta.
He probado con:
_root.jver = 1;
_root.acsid = 746367;
_root.domi = 4;
_root.cpagid = 0;
main.MCcounter.loadMovie(«http://s11.histats.com/120.swf»);
donde MCcounter el el clip donde cargo el contador, pero no funciona. El contador se carga, pero en vez de mostrar los datos, sólo muestra «Loading…»
Publicado: 11/06/2009 8:15 am
En el post anterior desapareció el código que llamaba al contador en HTML. Sería este:
embed src=»http://s11.histats.com/120.swf» flashvars=»jver=1&acsid=746367&domi=4&cpagid=0″ quality=»high»
width=»112″ height=»33″ name=»120.swf» align=»middle» type=»application/x-shockwave-flash»
pluginspage=»http://www.macromedia.com/go/getflashplayer» wmode=»transparent» /
Pero entre llaves, claro.
Publicado: 30/07/2009 4:42 am
Muy bien explicado, gracias, este artículo me ha sido muy útil.
Un saludo.
PD: ¿tanto le cuesta a la gente postear sin follarse el diccionario cada 4 ó 5 palabras?, de verdad que no es tan difícil NiGGa…
Publicado: 28/08/2009 12:04 pm
Tengo entendido que los flasvars solo funcionan en las mismas ventanas en las que se encuentra el swf, cierto?
Hay alguna manera de hacer ingresar una variable al swf desde otra pagina externa?. Por ejemplo tengo mi pagina en la que solo tengo un link con , esta variable es cogida por un $_GET, y cuando lo quiero mostrar en el swf no muestra nada o simplemente es una variable indefinida. Hay alguna solucion?
Publicado: 10/03/2010 1:33 am
Hola, disculpa una pregunta para que se haga la conexión entre HTML y as3, el html debe estar montando en algún servidor como Tomcat, o cómo se hace?? saludos!
Publicado: 19/03/2010 1:53 pm
xq cuando lo llamo me dice undefined? osea corro el flash y nada no c xq.. y lo hago asi igual
Publicado: 14/06/2010 10:09 pm
Gracias por el post.
Sos el mejor.
Publicado: 27/09/2010 6:32 pm
he probado usar _global.variable pero el swf externo no las lee como si fueran flashvar, con _root tampoco funciona :´(
Publicado: 28/05/2011 10:29 pm
vos sos un groso….. lo maximo mi brother… altoque y sencillo para quienes empezamos con el bendito AS3
Publicado: 22/12/2011 3:03 pm
Lo he probado y no me funciona. Me da el siguiente error:
Error #1065: No se ha definido la variable param.
Lo estoy intentando en AS3 con CS5.
Si alguien sabe el porque…
Saludos.
Publicado: 14/01/2012 4:03 pm
Gracias por el codigo, solo quisiera saber como cambio los colores del texto y de los links, gracias
Publicado: 07/03/2012 12:31 pm
Gracias, por la explicación, me ahorro muchas horas de lectura y de pruebas.
Publicado: 28/03/2012 11:17 am
tal vez alguien me pueda ayudar.
estoy haciendo un proyecto personal. necesito hacer una web local para una red de computadoras. lo que en si quiero es tener una pagina de videos musicales con caratulas de los videos cuando el usuario de clic sobre cualquiera. que me habra otra pagina con el reproductor de video.
ya tengo la pagina principal hecha. y encontre uno del un reproductor en flash.
con este codigo simple en script.
var so = new SWFObject(«mpw_player.swf», «swfplayer», «649», «400», «9», «#000000»); // Player loading
so.addVariable(«flv», «lo intentamos.flv»); // File Name
so.addVariable(«jpg»,»trusted.jpg»); // Preview photo
so.addVariable(«autoplay»,»false»); // Autoplay, make true to autoplay
so.addParam(«allowFullScreen»,»true»); // Allow fullscreen, disable with false
so.addVariable(«backcolor»,»000000″); // Background color of controls in html color code
so.addVariable(«frontcolor»,»ffffff»); // Foreground color of controls in html color code
so.write(«flvplayer»); // This needs to be the name of the div id
esta es la parte que me interesa—- so.addVariable(«flv», «lo intentamos.flv»); // File Name
como le puedo hacer para ir cambiando por codigo donde dice «lo intentamos.flv» ya que por el momento tengo 8 videos y tendria que hacer 8 paginas del reproductor es decir una por cada video. ya que lo tengo definido.
si alguien sabe ayuda.
Publicado: 25/06/2012 9:43 am
Hola, tienen algún ejemplo por favor, gracias.