Mode Martínez Palenzuela - 21-06-2006 14:00:03 | Categoria: Flash
¿Cómo puedo mandar una variable a una película flash?Pues hay varias formas de hacerlo. Una de ellas es utilizando la función DoFSCommands que el propio Flash nos crea al publicar. Posteriormente sólo deberemos utilizar el método SetVariable del objeto Flash. Puedes leer acerca de ello en los siguientes links:
Tutorial Cristalab
Pero disponemos de otra forma más sencilla, muy útil cuando sólo queremos enviar un valor. Consiste en utilizar los atributos FlashVars del tag <object> y flashvars del tag <embed> que se necesitan para incrustrar una película flash en un documento HTML.
El problema es que como el valor que queremos pasar a la película flash será variable (no tiene mucha utilidad pasar siempre el mismo valor, no?), debemos utilizar javascript, concretamente el objeto document y el método write para indicar el valor de la variable.
El parámetro FlashVars se define de la siguiente forma dentro de <object>:
<param name="FlashVars" value="valor">
El atributo flashvars de <embed> se define sin más de la siguiente forma:
flashvars="valor"
Pero de esta forma sólo podríamos mandar valores fijos. Para mandar valores a variables necesitamos de javascript. El código definitivo quedaría así:
<object classid="clsid27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=8,0,0,0"
id="menu" width="750" height="133" align="middle">
<param name="Src" value="../imgs/menu.swf" />
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="../imgs/menu.swf?op=3" />
<script language="javascript">
//..............................
// www.neomode.org
//..............................
// Recogemos en la variable menu el GET
// enviado por la película Flash
var menu=document.location.search;
// Extraemos sólo el último carácter
//que lleva la opción pulsada
var opcion=menu.substr(menu.length-2,1);
// Si ha habido algún error en la
//transmisión de GET
//suponemos la primera opción
if(opcion=='undefined') { opcion=1; };
document.write('<param name="FlashVars"
value="op='+opcion+'"/>');
</script>
<param name="quality" value="high" />
<PARAM NAME="BGColor" VALUE="FFFFFF">
<PARAM NAME="SWRemote" VALUE="">
<param name="wmode" value="transparent" />
<param name="bgcolor" value="#999999" />
<script language="javascript">
document.write('<embed src="../imgs/menu.swf"
width="750" height="133" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" menu="false"
allowscriptaccess="sameDomain" swLiveConnect=true
id="menu" name="menu"
flashvars="op='+opcion+'"></embed>');
</script>
</object>
Y Voilá! de esta forma hacemos que se genere el valor de la variable cuando se interprete el código en el navegador.
Y para qué sirve esto? Pues a mí personalmente me ha servido para hacer que un menú confeccionado con flash y que se repite en todas las páginas de un sitio conserve la opción que se ha seleccionado marcada en el menú, reflejando de esta forma el lugar que le corresponde en el menú a la página visualizada (de otra forma, el menú aparecería "desde cero" en cada página). Cuando la página esté operativa subiré un link a este mismo post. Por el momento sólo existe en mi Mac.
Anotación por Mode Martínez Palenzuela a las 14:00:03
| Comentarios (0)
Guardado en la categoría Flash | Referencias (0)
Guardado en la categoría Flash | Referencias (0)
Referencias:
neomode en la web ni su autor se hacen responsables de los comentarios aqui hechos. Cualquier comentario insultante o fuera del tema, será borrado.
Comentarios:
Escribe tu comentario
HTML Permitido. Correo electrónico no se muestra.

