Inicio de sesión

RSS

Distribuir contenido

En línea

En este momento hay 1 usuario y 5 invitados en línea.

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

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:

_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.

switch (_root.formato) {
      case "swf":
      // Código que sólo se ejecutará
      // cuando la animación se publique en swf
      break;
      case "exe":
      // Código que sólo se ejecutará
      // cuando la animación se publique en exe
      break;
      case "hqx":
      // Código que sólo se ejecutará
      // cuando la animación se publique en hqx
      break;
}

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

if (_root.formato == "swf") {
      // Código que sólo se ejecutará
      // cuando la animación se publique en swf
} else {
      // Código que sólo se ejecutará
      // cuando la animación se publique en
      // algún formato de Proyector
}
Autor

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <i> <b> <h2> <h3> <tt> <blockcode>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]". PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Saltos automáticos de líneas y de párrafos.
  • Every instance heading tags will be modified to include an id attribute for anchor linking.
  • Se pueden agregar imágenes a este envío.
  • Every instance of "<!--tableofcontents-->" in the input text will be replaced with a collapsible mediawiki-style table of contents. Accepts options for title, list style, minimum heading level, and maximum heading level as follows: <!--tableofcontents list: ol; title: Table of Contents; minlevel: 1; maxlevel: 3;-->. All arguments are optional and defaults are shown.

Más información sobre opciones de formato

CAPTCHA
Esta pregunta es para verificar que eres humano y así mismo eviar el SPAM.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.

Publicidad