Ejecutar código ActionScript en función del formato de publicación. Scour Design. Tutoriales de Flash, ActionScript, CSS, Photoshop, ImageReady...

\n"; } } } lecturas();

          


Ejecutar código ActionScript en función del formato de publicación

      

Autor: Joaquín Martí­ García - www.7bytes.net

En Flash es posible definir distintas acciones de código ActionScript que se ejecutarán dependiendo del formato en el que se ha publicado la animación, o bien swf, o cualquiera de los formatos de su proyector: exe para Windows y hqx para Mac.

La diferencia entre ellos es que el formato swf es capaz de embeberse en una aplicación contenedora e incluso, y esto es lo interesante, recibir parámetros de ella. El ejemplo más común de formato contenedor es HTML, que por sí solo es capaz de enviar parámetros a Flash, y que además puede apoyarse en JavaScript cuando estos parámetros son dinámicos.

Por eso, puede ser necesario publicar una misma animación en distintos formatos y por un lado, escribir acciones más concretas en el swf, como variables asociadas a sesiones o a usuarios que han hecho login, y por otro, acciones más genéricas para quien sólo quiera descargarse el proyector y ejecutarlo en local.

La clave de esta distinción está en la variable _root._url que, en tiempo de ejecución, contiene la URL completa de la animación. Sus tres últimos carácteres, por tanto, se corresponderán con la extensión del archivo publicado. Para obtenerlos bastará con hacer un substring:

  1. _root.formato = substring(_root._url, _root._url.length - 2, 3);

Después de esto, _root.formato contendrá la extensión del archivo publicado. Sus posibles valores serán, a priori, swf, exe o hqx, con los que se podrá escribir las condiciones necesarias para distinguir el código referente a un formato u otro. Una forma elegante de hacerlo es la siguiente.

  1. switch (_root.formato) {
  2. case "swf":
  3. // Código que sólo se ejecutará
  4. // cuando la animación se publique en swf
  5. break;
  6. case "exe":
  7. // Código que sólo se ejecutará
  8. // cuando la animación se publique en exe
  9. break;
  10. case "hqx":
  11. // Código que sólo se ejecutará
  12. // cuando la animación se publique en hqx
  13. break;
  14. }

De forma más genérica se podría hacer una condición que distinguiera entre swf y los formatos de proyector:

  1. if (_root.formato == "swf") {
  2. // Código que sólo se ejecutará
  3. // cuando la animación se publique en swf
  4. }
  5. else {
  6. // Código que sólo se ejecutará
  7. // cuando la animación se publique en
  8. // algún formato de Proyector
  9. }
Scour Design ™ Todos los Derechos Reservados © Carlos Carmona Xhtml 1.1 Strict Válido!CSS Nivel 2 Válido! Nivel Triple-A de Conformidad con las Directrices de Accesibilidad Web (WAI)