Laburo España: 250.000 ofertas de empleo

neomode en la web

programación, diseño web y diseño gráfico
¿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="clsid:D27cdb6e-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)

Referencias:

Dirección para 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.


Recordar datos

< Regresa a la portada

Copyleft Mode Martínez Palenzuela - Granada - Andalucía - España

Sindica este sitio usando: RSS 1.0, RSS 2.0, Atom. Esta bitácora se mantiene con Bitacorae.
LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009