Comunidad de diseño web y desarrollo en internet

Depurar Actionscript de Flash o Flex con Firebug

Este tip es para quienes deseen depurar proyectos Flash/Flex corriendo desde el navegador. Me he encontrado varias opciones para depurar pero hace tiempo buscaba algo que me permitiera depurar un proyecto de Flex sin complicarme la vida. Como tenía que estar corriendo el swf en el navegador, los clásicos trace no funcionaban.

Entonces di con una solución aprovechando las prestaciones de Firebug (instalado en Firefox) y aprovecho para ponerla a disposición de ustedes.

Se requiere tener instalado Firebug. Será genial si alguien aporta código para que ésto funcione en herramientas de depuración de los otros navegadores :D

Código :

   import flash.external.ExternalInterface;

   /** Muestra en la consola de Firebug el valor de una variable.
   * @param txt1: una variable de cualquier tipo
   * @param txt2: String, opcional. si se indica se mostrará antes del valor de la variable
   */
   protected function t (txt1:*, txt2:String =''):void {
      if (txt2 == '')
         ExternalInterface.call ('console.log', txt1);
      else
         ExternalInterface.call ('console.log', txt2 +': ' +String(txt1));
   }

   /** Muestra en la consola de Firebug el valor de una variable de tipo Array, Vector u Object.
   * @param target: una variable de tipo Array, Vector u Object;
   * @param title: String, opcional. si se indica se mostrará antes del valor de la variable
   */
   protected function tp (target:Object, title:String =''):void {
      t ('...tracing ' +title);
      ExternalInterface.call ('console.log', target);
   }


No hay gran ciencia. Con ExternalInterface se llama un método log de un objecto console (los declara firebug cuando está activado y no sé si algún otra herramientas haga lo mismo).
Los resultados de llamar a estas funciones se verán en la pestaña "Consola" de Firebug

Lo anterior se puede pegar en un archivo .as y usarlo con un include
Para usarlo en flash (si lo pegan en un frame o usan un include en un frame), habría que quitar la palabra protected de las definiciones de las funciones.

Suerte y espero que les sea de utilidad

¿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