Como ya se ha dicho, el action FS
Command permite enviar mensajes al programa host que hospeda a la
película Flash. Si se envían informaciones al browser web hay que crear
scripts capaces de "capturar" dichos mensajes e interpretarlos.
En esta lección propondré un ejemplo simple de cómo conseguir abrir una
nueva ventana del browser de un botón Flash. No explicaré, sin embargo,
el funcionamiento del JavaScript pues no me aprece pertinente en un curso Flash.
1a Fase - Configuración de los tag <OBJECT> e
<EMBED>
Para empezar, hay que preparar el código HTML de la página web en la que está
la película Flash. Es necesario aportar algún pequeño cambio en los tag
<OBJECT> y <EMBED> que asignan los parámetros a la película Flash.
Antes de nada, tenemos que convertir la película "capturable" para los
scripts. Para hacer esto, le damos un nombre a la película Flash; con este nombre,
después, los scripts podrán identificar las informaciones que le enviaremos al browser.
Añadamos a los dos tag <OBJECT> y <EMBED> las voces ID e NAME:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#
version=4,0,0,0" WIDTH="100" HEIGHT="100" ID="AbreVen.">
<PARAM NAME="MOVIE" VALUE="prova.swf">
<PARAM NAME="PLAY" VALUE="TRUE">
<PARAM NAME="LOOP" VALUE="FALSE">
<PARAM NAME="QUALITY" VALUE="HIGH">
<PARAM NAME="SCALE" VALUE="showall">
<EMBED NAME="AbreVen"
swLiveConnect="true"
SRC="prova.swf" SCALE="showall" PLAY="true" LOOP="false" QUALITY="high" WIDTH="100" HEIGHT="100" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/
index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
</OBJECT>
(el código que se muestra sirve sólo como ejemplo para comprender mejor la
posición de los parámetros ID y NAME)
En este ejemplo se ha asignado a los parámetros ID y NAME
el valor AbreVen. Éste es el valor con el que los scripts podrán
interceptar las informaciones e interpretarlas.
El parámetro swLiveConnect se incluye exclusivamente en el tag
<EMBED> y permite cargar Java en la visión de la pagina. De
esta manera, el browser no ralentiza la ejecución de los script cargando
Java en el momento en que se abre la ventana.
2a Fase -
Asignación de la action en el botón
Llegados a este punto, incluimos en la película Flash la clip botón que
le permitirá ,cuando se clica, que se abra una nueva ventana del browser.
Asignamos esta action:
On (Release)
FS Command ("nueva-ventana", "http://www.htmlpoint.com")
End On |
dove nueva-ventana y el nombre que se hemos ya asignado a la orden
(podemos asignarle cualquier nombre, es suficiente con que el valor en los scripts sea el
mismo), y http://www.htmlpoint.com es el argumento (la nueva página web que
hay que abrir).
3a Fase - Creación de los script
Podemos ya proceder a la creación de los script que van a permitir que se
abra una nueva ventana del browser.
Éste es el código JavaScript que permite ejecutar la operación:
<SCRIPT LANGUAGE="JavaScript">
<!--
function ApriFin_DoFSCommand(command, args)
{
if ( command == "nueva-ventana" )
{
window.open(args,'','scrollbars=yes,width=650,height=400');
}
}
//-->
</SCRIPT>
La función Java DoFSCommand convoca a la película Flash AbreVen
y recupera las variables command y args (que en nuestro caso tienen
valor "nueva-ventana" y "http://www.htmlpoint.com").
¡Cuidado!
Si tenéis intención de modificar los valores de los parámetros ID y NAME
tened cuidado de sustituir con el mismo valor el nombre de la función DoFSCommand.
Pongamos un ejemplo: si en lugar de AbreVen hubiésemos elegido seleccionar
el nombre Pippo, la función JavaScript sería ésta: Pippo_DoFSCommand(..).
Como se ve, la función puede aceptar más elecciones enviadas
por Flash y ejecutar operaciones diferentes. De hecho, en este ejemplo se
ejecuta la operación de apertura de la ventana si el command es igual a nueva-ventana.
Por tanto podemos incluir mas alecciones en la misma función y asignarle a
cada una de ellas una operación.
Llegados a este punto, con Netscape podemos ver los resultados de la
lección, mientras que con Explorer tenemos que insertar una parte más de código:
<SCRIPT LANGUAGE="VBScript">
<!--
// Para IE.
Sub AbreFin_FSCommand(ByVal command, ByVal args)
call AbreVen_DoFSCommand(command, args)
end sub
//-->
</SCRIPT>
siendo el VBScript el lenguaje por defecto.
Esta breve función convoca el JavaScript creado anteriormente y le envía
las variables recibidas por la película Flash.
Estos dos script hay que insertarlos dentro de los tag <HEAD> y </HEAD>.
Profundización
Por desgracia, la orden FS Command no es compatible con todas las versiones
de los browser, como sucede si se quiere convocar JavaScript directamente con la acción Get
Url. He aquí una tabla que resume la compatibilidad o incompatibilidad de los distintos
browser:
|
|
Script
para la marcación plug-in |
Load Movie |
"JavaScript:" nel GetURL |
FSCommand, comunicacion entre Flash y JavaScript |
|
Netscape 3.0 y superiores |
|
Mac 68k |
No |
No |
No |
No |
|
Mac PowerPC |
Sí |
Sí |
Sí |
Sí |
|
Windows 3.1 |
Sí |
No |
No |
No |
|
Windows 95/98/NT/2K |
Sí |
Sí |
Sí |
Sí |
|
Internet Explorer 3.0 y superiores |
|
Versione 3
Macintosh |
No |
No |
Sí |
No |
|
Versión 4.5
Macintosh |
No |
Si |
No |
No |
|
Versión 5.0
Macintosh |
Sí |
Sí |
Sí |
No |
|
Versión 3
Windows 3.1 |
No |
No |
No |
No |
|
Versión 3
Windows 95/98/NT |
Sí |
Sí |
No |
Sí |
|
Versión 4
Windows 95/98/NT |
Sí |
Sí |
Sí |
Sí |
|
Versión 5
Windows 95/98/NT/2K |
Sí |
Sí |
Sí |
Sí |