Como utilizar Flashvars

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.

  1. <object width="200" height="100">
  2.    <param name="movie" value="movie.swf" />
  3.    <param name="FlashVars" value="var1=valor1&var2=valor2" />
  4.    <embed src="miSwf.swf" width="100" height="100
  5.    FlashVars="var1=valor1&var2=valor2"/>

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:

  1. <script type="text/javascript">
  2. var so = new SWFObject("movie.swf", "my", "200", "100", "8", "");
  3. so.addVariable("var1", "valor1");
  4. so.addVariable("var2", "valor2");
  5. so.write("divmovie");

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.

  1. trace(_root.var1); // imprime "valor1"
  2. trace(_root.var2); // imprime "valor2"

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.

  1. var param:Object = LoaderInfo(this.root.loaderInfo).parameters;
  2. trace(param["var1"]); // imprime "valor1"
  3. trace(param["var2"]); // imprime "valor2"

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


Wílmer
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!!

Juan Luis Cano
Publicado: 19/08/2008 9:48 am

A saber cuánto tiempo pude estar intentando esto en AS3. ¡Muchas gracias!

Gustavo
Publicado: 15/01/2009 12:13 pm

Buenísimo, y simple. El sitio que mejor lo explica.
Muchas Gracias por el aporte.

David Castillo
Publicado: 31/01/2009 6:08 pm

Muchisimas gracias por el codigo!

Alexia
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!….

unijimpe
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

rholando
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

juan
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??.

NiGGa
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

NiGGa
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

Xbalanqué
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.

manuel
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

unijimpe
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/

jedikalimero
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…”

jedikalimero
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.

Pedantoso
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…

eddy
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?

Andres
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!

jgames88
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

matias
Publicado: 14/06/2010 10:09 pm

Gracias por el post.
Sos el mejor.

chat de amigos hispanos
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 :´(

oscar ruiz iman
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

Emilio
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.

Carlos
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

Raul M
Publicado: 07/03/2012 12:31 pm

Gracias, por la explicación, me ahorro muchas horas de lectura y de pruebas.

gilberto
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.

Jose
Publicado: 25/06/2012 9:43 am

Hola, tienen algún ejemplo por favor, gracias.

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)