没有换行符的AS3跟踪

时间:2010-08-20 21:58:49

标签: actionscript-3 actionscript newline trace

出于诊断目的,我想打印矩阵(数组数组)。使用循环执行此操作意味着多次执行跟踪命令,据我所知 - 这排除了将多个表格单元格打印到单行的可能性。

(编码trace(x); trace(y);时,换行符介于xy之间。)

我该怎么办?

4 个答案:

答案 0 :(得分:1)

您可以使用"\n"将跟踪语句分解为多行。我不太确定这是你问的问题。

如果使用flex,可以使用ObjectUtil.toString()将对象(嵌套数组)转换为字符串表示形式。

如果您询问如何使用多条迹线打印一行,我建议先转换为字符串。想象你有一个矩阵分成行数组。请注意,此代码未经测试可能存在拼写错误。它也可以假设您的外部数组包含一个String对象数组,这可能不是这种情况,但它应该有帮助,可以转换为其他数据类型。

var rowText:String = "";
trace ("BEGIN tracing rows");
for each (var row:Array in rows)
{
   for each (var value:String in row)
   {
       rowText = rowText + value + " ";
   }
   trace (rowText);
}
trace("END tracing rows");

答案 1 :(得分:1)

以下代码......

var jaggedArray:Array = new Array(new Array(" 1 "," 2 ", " 3 "), new Array(" 3 ", " 4 ", " 5 "));
var output:String = "";
for( var i:Number = 0; i < jaggedArray.length; ++i){
    for(var j:Number = 0; j < jaggedArray[i].length; ++j){
            output += jaggedArray[i][j];
    }
    output += "\n";
}
trace(output);

...产生以下输出:

alt text

这是你要找的吗?如果是这种情况,请不要像我一样使用丑陋的字符串连接,最好使用in the SO question所述的缓冲区。

锯齿状数组是一个数组,其元素是数组。它具有不同大小的特点。

答案 2 :(得分:1)

var x:int=10, y:int=x/2, z:int=y*2;
// trace as single space-delimited line:
trace(x, y, z); // 10 5 10

但对于数组,您可以这样做:

var a1:Array = [1, 2, 35678];
var a2:Array = [124, 5, 6];
var a3:Array = [7, 128, 9];
var mtx:Array = [a1, a2, a3];
for each(var row:Array in mtx) {
    trace(row.join('\t'));
    // or use delimiter function
    // to right align values...
}

答案 3 :(得分:1)

为了解决这个问题,我个人刚刚创建了一个允许我写入课程的新课程;然后执行trace命令:

public class TraceHolder {

    private var txt:String = "";

    public function TraceHolder() {
        // constructor code
    }
    public function writeTo(inStrg:String) : void
    {
        txt = txt.concat(inStrg);
    }
    public function execute() : void
    {
        trace(txt);
        txt = "";
    }

}

然后允许我这样做:

var th:TraceHolder = new TraceHolder();
th.writeTo("blah blah blah the front of the line");
th.writeTo("blah blah blah");
th.writeTo("blah blah blah end of the line");
th.execute();

跟踪这个:

blah blah blah the front of the lineblah blah blahblah blah blah end of the line

简单,有效且无用。