Cristalab

Implementar fácil trace en Flex con Alert

Por: AXM + 30.01.2008

Cuando uno empieza en Flex, lo primero que se extraña es el querido trace("Hola Mundo"); del mundo de Flash. Ya que en flex no es fácil utilizar el trace, toca activar modos de depuración o utilizar el Alert con:

Código :

import mx.controls.Alert;
Alert.show("Hola Mundo"))


Hasta ahí todo bien. Pero el Alert tiene dos problemas, que cuando se utiliza intensivamente para probar cosas, suelen irritar bastante.
  1. Toca utilizar Alert + show. Con el trace no toca colocar trace.show("Hola Mundo"). Molesto
  2. Si lo que uno quiere mostrar no es un String, entonces toca colocar

Código :

Alert.show(new String(loQueSea));

Con el trace no toca colocar eso. El no discrimina objetos de cadenas.

Lo ideal seria que en Flex uno pudiera utilizar el trace como en Flash, pero que apareciera un Alert. Probé una manera para lograr esto, y para mi sorpresa funciono. Solo toca escribir esta función.

Código :

private function trace(texto:Object):void
{
    Alert.show(new String(texto))
}

Y luego, utilizamos en donde necesitemos.

Código :

trace("Hola Mundo");

o para ver propiedades de objetos

Código :

trace(objeto.propiedad);

Y ya está. Funciona!!!. Pensaba que iba a dar conflicto pero sorprendentemente no me dio error.

Etiquetas hack actionscript_3 flex

Comentarios | Enviar un comentario
No mames
Por: Quetzalcoatl_blog
Hablando de perder el tiempo...
Por: Gazu_blog
mmm interesante, de hecho para situaciones no tan complejas funciona bastante bien. Sin embargo, a veces el trace si es necesario, por lo general cuando necesitamos una salida continua o muy extensa.

Me ha gustado , Guiño Guiño
* offtopic, algun bofh cerca???
Por: r_o
no entiendo, si interesante el post, pero usar un alert para un trace, cuando tranquilamente podemos usar el output de flex, no lo veo muy complicado, complejo o confuso, un trace, es un trace, en flash o flex sigue teniendo la misma funcionalidad U_U

Pero bueno, ya es cosa de cada desarrollador miau y su experiencia
Por: eldervaz
haber el genio del eldervaz explicanos como es con el output que dices que a mi no me ha salido el primer trace que he intentado en flex.
Por: eric_blog
¿Por que usar un trace, cuando hay un sistema de debug?
La perpertiva DEBUG que viene incluida en FLEX BUILDER es una de las mas completa que hay ya que permite hacer una traza linea a linea como en JAVA, o C , hacer pruebas unatarias, volcar las traza en un archivo de texto, etc...

Usar un trace(objeto.propiedad); para conocer el valor de una variables, es un metodo muy primitivo, esas tecnica ensucian el codigo

Flash 8 tanbien incluye un modulo de traza mas simple que el de FLEX BUILDER, pero util y mas completo que un trace.
Por: dugalman_blog
Yo emplearía otra opción para suplir ese trace, si no contamos con el debugger del flex.

El alert puede quedarse corto en muchas ocasiones, así que por qué no tener un TextField que empleemos para mostrar esas salidas.

Código :


var tracet:TextField = new TextField();

public function trace(texto:String):void {
  tracet.text = texto;
}

//o simplemente un tracet.text = laSalidaQueQueramos;

Por: Whitefeet
eric, no trollees. Si ejecutás tu swf en modo debug los trace salen.

Usando eclipse es usar F11 en lugar de Ctrl F11.
Por: HernanRivas (logout)_blog

HernanRivas (logout)_blog :

eric, no trollees. Si ejecutás tu swf en modo debug los trace salen.

Usando eclipse es usar F11 en lugar de Ctrl F11.

Usando Flash Develop usa F5 miau

y Whitefeet, el trace no es tanto como el debugger, solo que aveces a nosotros se nos ocurre mandar un mensaje o ver un valor, o simplemente enviar un mensaje en un evento deseado, no por eso ensucias el código, es cosa de costumbres (cof cof Flash cof cof) miau aunque tu comentario es valido porque yo NO aclaré el uso miau bien ahí
Por: eldervaz
muy bien lo del F11 que dice HernanRivas (logout)_blog en eclipse:D(Ademas por que yo udo eclipse). Por que no tambien utilizar la extensión para firefox FlashTracer[url] como lo explica [url=http://www.joangarnet.com/blog/?p=381]Joan Garnet en su Blog
Por: vanvanero_blog
Perdon po el post anterior es por lo afanes Riendo Riendo lo que queria poner era esto...
muy bien lo del F11 que dice HernanRivas (logout)_blog en eclipse Muy Feliz (Ademas por que yo uso eclipse). Por que no también utilizar la extensión para firefox FlashTracer como lo explica Joan Garnet en su Blog
Por: vanvanero_blog
@vanvanero: justo lo que uso para probar todos mis proyectos en Flash/Flex miau y al final en Flash le doy "Omitir Traces" y listo. En Flex cuando el código te bota un error, el trace no basta. El Debug (F11) es muy bueno y me a salvado de tantas U_U
Por: Otaku RzO

eldervaz :

HernanRivas (logout)_blog :

eric, no trollees. Si ejecutás tu swf en modo debug los trace salen.

Usando eclipse es usar F11 en lugar de Ctrl F11.

Usando Flash Develop usa F5 miau

y Whitefeet, el trace no es tanto como el debugger, solo que aveces a nosotros se nos ocurre mandar un mensaje o ver un valor, o simplemente enviar un mensaje en un evento deseado, no por eso ensucias el código, es cosa de costumbres (cof cof Flash cof cof) miau aunque tu comentario es valido porque yo NO aclaré el uso miau bien ahí


Sí, sí cierto que no es lo mismo... yo también uso Flash, jeje y amo el trace, de ahi que se me ocurriera lo del textField para poder verlo en pantalla mientras pruebo mi aplicación.
Por: Whitefeet
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.