Comunidad de diseño web y desarrollo en internet online

Asignar parámetros a un SWF según el HTML donde se encuentre

Cuando estamos haciendo sites híbridos, osea páginas XHTML con partes en Flash, es probable que esas partes en Flash sean la cabecera o algún menú que es común para todas las páginas.

Pero aun siendo común para todas las páginas es probable que necesitemos que ese SWF tenga unas características asignadas dependiendo de la página en la que se encuentre. Por ejemplo, que el botón de la sección en la que nos encontremos esté iluminado, o que el SWF se inicie reproducciendo una animación concreta para cada sección.

La solución más fácil sería crear un SWF independiente para cada página con los parámetros que nos interesa para cada página.. pero eso nos resultaría un trabajo bastante tedioso.

Lo mejor es hacer que el propio SWF se inicie con unos parámetros diferentes según el HTML en el que esté colocado.

Para saber en que página estamos utilizaremos el objeto location de Javascript, y ExternalInterface de Actionscript.

Pondremos este código al inicio de la pelicula:

Código :

var ruta:Array = String(ExternalInterface.call("function href(){return (location.href)}")).split("/");
var pagina:String = ruta[ruta.length - 1].replace(".htm","");


Con esto sabremos el nombre del archivo HTML en el que se encuentra ejecutandose el SWF. Apartir de ahi asignaremos los parámetros que nos interese para cada caso.

Por ejemplo haremos que según la página en la que estemos iniciaremos la película en un fotograma u otro:

Código :

var num:uint;
switch (pagina)
{
   case "servicios" :
      num = 2;
      break;
   case "descargas" :
      num = 3;
      break;
   case "contacto" :
      num = 4;
      break;
   default :
      num = 1;
}
gotoAndStop(num);

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate