Utilizando o ObjectUtil no ActionScript 3.0

Para quem desenvolve em Flash é normal a utilização do metodo trace para debugar suas aplicaçãos, no Flex Builder é possivel também usar o trace, mas ele so é mostrado no console quando você debuga uma aplicação. No ActionScript 3.0 foi introduzido novas classes, entre elas a ObjectUtil para trabalhar com objetos e como tudo no Flex é objeto, seja variavel, função etc, fica mais facil para entendermos como nossa aplicação caminha.
Por exemplo, temos o seguinte objeto:

ActionScript

  1. var obj:Object = {a:"foo", b:"bar"};

Normalmente usariamos um loop for in para obtermos as propriedades do Objeto.

ActionScript

  1. for(var i:String in obj){
  2.     trace(i +" = "+obj[i]);
  3. }
  4. /*
  5. output
  6. b = bar
  7. a = foo
  8. */

Podemos simplesmente trocar usando o metodo toString da classe ObjectUtil.

ActionScript

  1. trace(ObjectUtil.toString(obj));
  2. /*
  3. output
  4. (Object)#0
  5.   a = "foo"
  6.   b = "bar"
  7. */

Você pode testar e vendo o resultado com outros tipos de dados do ActionScript 3.0, como Xml, arrays etc
Para facilitar meu trabalho criei uma classe bem simples para implementar essas caracteristicas.

ActionScript

  1. /**
  2. * package leo
  3. * filename: showDebug.as
  4. */
  5. package{
  6.     import mx.utils.ObjectUtil;
  7.     import mx.controls.Alert;
  8.     /**
  9.      *
  10.      * @author Leonardo França
  11.      * @email leo@osfederais.com
  12.      * @blog www.leonardofranca.com.br
  13.      * class showDebug
  14.      *
  15.      */
  16.     public class showDebug extends ObjectUtil{
  17.         /**
  18.          * Show Debug details
  19.          * @param str
  20.          * @param tipo
  21.          * @return
  22.          *
  23.          */    
  24.         public function showDebug(str:*,tipo:uint){
  25.             switch(tipo){
  26.                 case 1:
  27.                     trace(ObjectUtil.toString(str));
  28.                 break;
  29.                 case 2:
  30.                     Alert.show(ObjectUtil.toString(str),"Debug");
  31.                 break;
  32.                 default:
  33.                     //no debug
  34.                 break;
  35.             }
  36.         }
  37.     }
  38. }

E o modo de usar:

  1. < ?xml version="1.0" encoding="utf-8"?>
  2. < mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
  3.     < mx:Script>
  4.         < ![CDATA[
  5.             import showDebug;
  6.             public var obj:Object = {a:"foo", b:"bar"};
  7.             public function init():void{
  8.                 new showDebug(obj,1);
  9.             }
  10.         ]]>
  11.     < / mx:Script>
  12. < / mx:Application>

Detalhe que coloquei um segundo parametro na classe simplesmente para mostrar 1 para usar trace e 2 para usar Alert.

ActionScript 3.0, Flex, Principal

Leave a Reply