X-Ray en proyectos Flash Open Source

Rich Internet Expertise

X-Ray en proyectos Flash Open Source

28 enero, 2006 Flash 4

Para el que no conozca el proyecto X-Ray le resumiré que es una potente herramienta para poder inspeccionar nuestras aplicaciones SWF en tiempo de ejecución como si de un depurador se tratara. Esto se realiza gracias a la magia del objeto LocalConnection que nos permite realizar una comunicación entre dos SWFs corriendo en local. En nuestro caso un SWF será nuestra aplicación a la cuál le añadiremos un pequeño conector para permitir la comunicación con el segundo SWF que no es más que la interface de X-Ray donde podremos consultar las diferentes variables, objetos y MovieClips que se encuentren en nuestra aplicación a la hora de tomar la foto.

Para utilizar X-Ray con proyectos Flash libres (ya sabeis… ASDT, MTASC, Eclipse y SWFMill) podeis usar la versión denominada «Connector Only«, la cual puede ser descargada desde aquí­ (la revisión actual del connector es la 1.4.5). Además necesitareis la interface de X-Ray cuya versión más reciente (la 1.2.5 en estos momentos) está en esta otra url.

Dentro del fichero podeis encontrar un directorio de clases. Para poder reutilizar esta carpeta os recomiendo que la situeis en un directorio fuera del proyecto actual para que podais compartir esas clases. Yo uso una carpeta lib donde tengo una subcarpeta para cada conjunto de clases (como pueden ser las clases de animation package, remoting, mx parcheadas,etc…) que suelo reutilizar en cada proyecto. Para estas he creado una carpeta xray_classes. Dentro de dicha carpeta he copiado solo la subcarpeta com debido a que ni uso las clases mx ni flashout).

Dentro de mi build.xml (de ANT), tengo una nueva variable que referencia estas clases, la cuál utilizare luego para construir mi SWF con MTASC encadenandola en el path:

[xml][/xml]

Para comprobar que todo está correctamente configurado, usé el siguiente código en la clase principal de mi proyecto:

[sourcecode language=»javascript»]/* Importar la clase XRayLoader para cargar el conector
* Dicho conector lo podeis encontrar en el zip y se llama: ConnectorOnly_as2_fp7_OS_1.4.5.swf
* El conector debeis de copiarlo a la carpeta donde tengais vuestro swf
*/
import com.blitzagency.xray.util.XrayLoader;

/* El siguiente código dee estar en el constructor de vuestra clase
* principal
*/
// — XRAY
var listener:Object = new Object();
listener.xrayLoadComplete = function(){
XrayLoader.trace(«Xray has loaded…»);
}
XrayLoader.addEventListener(«xrayLoadComplete», listener);
XrayLoader.loadConnector(«ConnectorOnly_as2_fp7_OS_1.4.5.swf», this);
[/sourcecode]

Una vez que compileis vuestra aplicación esta será capaz de cargar el conector de X-Ray y comunicarse con la interface que hace las veces de debugger. Esta última debeis arrancarla después de vuestra aplicación para que la magia tenga efecto.

Lo bueno de este método es que podeis configurar vuestro build.xml y la clase donde insertais el código anterior para automatizar vuestros pasos a producción y solo disponer del «modo debug» cuando os interese.

4 comentarios

  1. miguel dice:

    Pongo en mi clase de configuracion el codigo, compilo incluyendo en el classpath la carpeta ‘com’ y lanzo mi swf. Después lanzo la intefaz de xray pero me da error de conexion.

    Que hay que hacer con el archivo ConnectorOnly_as2_fp7_OS_1.4.5.swf?

    gracias por el articulo. Como siempre trabajo con test de unidades nunca he necesitado realmente un debugger, pero tenia ganas de empezar a utilizar xray.

  2. Hola Miguel,

    el fichero «ConnectorOnly_as2_fp7_OS_1.4.5.swf» debes ponerlo en la carpeta donde tengas el swf que tenga que cargarlo (o puedes usar otro path, pero luego tienes que indicarlo al cargarlo).

    Te aconsejo que pongas alguna traza para comprobar que cargas el conector, luego tienes que arrancar primero tu aplicacion (esto cargara el conector y dejará todo preparado), luego tienes que arrancar el debugger y aquí­. abajo a la derecha veras una luz roja que se pondrá verde cuando se realice la conexión

    Al menos así­ es como yo lo he hecho 😉

  3. miguel dice:

    perfecto! Era un problema con el player 8.5. Cuando lo abro con el 8 va perfecto.

    gracias!

  4. mmm…puede que LocalConnection todaví­a de problemas en FP alpha 8.5

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.