2007/06/23 | 打印多重对象数组相互嵌套的字符串
类别(flash学习) | 评论(2) | 阅读(99) | 发表于 13:12
在很多情况下,在调试代码的时候都需要对一个很复杂的数组或者对象进行分析,这样就需要trace出字符串,方便我们进行查错.
以下的类适用于
数字型或者字符串型的数组或对象相互嵌套

/*
* TraceObject CLASS
*
* @ CREATED BY: ycccc8202
* @ PURPOSE: 打印对象字符串
* @ DATE:2007.6.22
* Usage example:
* import com.ycccc.utils.TraceObject;
* var a = [[1, 2, 3], {i:1, j:2}, [{m:3, n:"4"}, 5], "6", {j:["7", 8], k:{p:9, q:"10"}}];
* var b = {i:8, j:{o:1, p:2}, k:[3, 4], l:{r:"4", s:["5", 6]}, m:"7"};
* var c = [1, 2, 3];
* var d = {i:1, j:2, k:3};
* trace(TraceObject.toString(a));
* trace(TraceObject.toString(b));
* trace(TraceObject.toString(c));
* trace(TraceObject.toString(d));
*/
class com.ycccc.utils.TraceObject {
 /**
 * Private Static members
 */
 private static var RESULT_STRING = "";
 /**
 * Public Static methods
 */
 public static function toString(obj:Object) {
  RESULT_STRING = ObjToString(obj).substr(0, -1);
  return RESULT_STRING;
 }
 /**
 * Private Static methods
 */
 private static function ObjToString(obj:Object):String {
  var resultStr:String = "";
  var type:Object = typeof obj;
  switch (type) {
  case "number" :
   return obj+",";
  case "string" :
   return "\""+obj+"\",";
  case "object" :
   if (obj.length<>undefined) {
    if (obj.length == 0) {
     return "[],";
    }
    resultStr += "[";
    for (var _i:Number = 0; _i<obj.length; _i++) {
     resultStr += ObjToString(obj[_i]);
    }
    resultStr = resultStr.substr(0, -1);
    resultStr += "],";
   } else {
    var _null = false;
    resultStr += "{";
    for (var _i in obj) {
     _null = true;
     resultStr += _i+":"+ObjToString(obj[_i]);
    }
    if (!_null) {
     return "{},";
    }
    resultStr = resultStr.substr(0, -1);
    resultStr += "},";
   }
   return resultStr;
  }
 }
}
//用法:
import com.ycccc.utils.TraceObject;
var a = [[1, 2, 3], {i:1, j:2}, [{m:3, n:"4"}, 5], "6", {j:["7", 8], k:{p:9, q:"10"}}];
var b = {i:8, j:{o:1, p:2}, k:[3, 4], l:{r:"4", s:["5", 6]}, m:"7"};
var c = [1, 2, 3];
var d = {i:1, j:2, k:3};
trace(TraceObject.toString(a));
trace(TraceObject.toString(b));
trace(TraceObject.toString(c));
trace(TraceObject.toString(d));

//p.s:希望对大家有些帮助 v(-_-)v
0

评论Comments

日志分类
首页[38]
flash学习[35]
图片收藏[1]
Apollo_Flex[2]