zoukankan      html  css  js  c++  java
  • flash中的trace,扩展trace的能力!

          大家都知道,flash中trace的作用非常大,凡是flash程序员,无不没有不用trace的,trace是用来测试输出的,在测试阶段通常使用trace来查看数据的。当然发布以后trace就不能用了。是需要其他工具来查看输出的,这里简单介绍一下De MonsterDebugger,我在做项目的时候经常用到的工具。

          trace可以输出:数值、字符串、数组、布尔值==。而且对这些类型的输出可以确切的看到其实际内容。

          但是大家可能会对类进行trace的时候犯难。因为trace(new A),(A extends Object)输出的结果却是[object A],并不能显示类A的详细内容。这该怎么办呢,这就是我要讲的内容。

          其实仔细研究下就会发现[Object A]其实是A的toString()方法的结果,由于flash中的所有类都继承自Object,而对类的实例执行trace的时候执行的是类的toString()方法。toString()是Object的方法。所以任何类都有toString()方法,因此对类的实例进行输出的时候就不会报错。而会出现像[Object A]这样的结果。讲到重点了。我们今天要做的扩展trace的能力,实际上就是重写类的toString()方法。很简单吧。只要你在你的自定义类中重写这个方法,那么在进行trace的时候,就可以随性所欲的想输出什么就能输出什么了。

         举个例子:

    代码
     1 package{
     2     
     3     public class A{
     4         private var attr1:String;
     5         private var attr2:String;
     6         private var attr3:String;
     7         
     8         public function A(str1:String,str2:String,str3:String):void{
     9             attr1=str1;
    10             attr2=str2;
    11             attr3=str3;
    12         }
    13         
    14         public function toString():String{
    15             return "[attr1:"+attr1+"]\n[attr2:"+attr2+"]\n[attr3:"+attr3+"]";
    16         }
    17     }
    18 }

          上面定义了一个类A重载了toStirng()方法,大家可能会疑问为什么没用override呢,调用flash帮助文档上的一句话:“注意:Object 类的方法是在 Object 的原型上动态创建的。 要在 Object 的子类中重新定义该方法,请不要使用 override 关键字。 例如,Object 的一个子类实现 function toString():String 而不使用基类覆盖。
          新建fla文件在动作面板里写上var a:A=new A("ab","cd","ef");trace(a);
    测试下,就会在输出面板里输出
    [attr1:ab]
    [attr2:cd]
    [attr3:ef]

    达到了我们的目的,toString()方法的实体可以任意改,只要能达到自己的要求就行。

          总结:trace(类的实例),实际上是执行了trace(类的实例.toStirng());所以只要给类添加toString方法就可以用trace来显示类的详细信息了。

  • 相关阅读:
    request-log-analyzer日志分析
    ubuntu下git输出的颜色变化
    vundle安装 给vim插上翅膀
    安装ruby
    【HDU1944】S-Nim-博弈论:SG函数
    【HDU1944】S-Nim-博弈论:SG函数
    我对SG函数的理解
    我对SG函数的理解
    【POJ2154】Color-Polya定理+欧拉函数
    【POJ2154】Color-Polya定理+欧拉函数
  • 原文地址:https://www.cnblogs.com/huomiao/p/1676985.html
Copyright © 2011-2022 走看看