Actionscript 3 AS3跟踪带换行符

Actionscript 3 AS3跟踪带换行符,actionscript-3,actionscript,newline,trace,Actionscript 3,Actionscript,Newline,Trace,出于诊断目的,我想打印一个矩阵(数组数组)。使用循环执行此操作意味着多次执行跟踪命令,据我所知,这排除了将多个表单元格打印到一行的可能性 (对轨迹(x);轨迹(y);进行编码时,换行符位于x和y之间) 我能做什么?您可以使用“\n”将跟踪语句分解为多行。我不太确定这是否是你在问题中提出的问题 如果您使用flex,则可以使用ObjectUtil.toString()将对象(嵌套数组)转换为字符串表示形式 如果你问如何打印一行多个记录道,我建议先转换成字符串。假设您将一个矩阵分解为一个行数组。请注意

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

(对
轨迹(x);轨迹(y);
进行编码时,换行符位于
x
y
之间)

我能做什么?

您可以使用
“\n”
将跟踪语句分解为多行。我不太确定这是否是你在问题中提出的问题

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

如果你问如何打印一行多个记录道,我建议先转换成字符串。假设您将一个矩阵分解为一个行数组。请注意,此代码未经测试,可能存在拼写错误。它还可以在外部数组包含字符串对象数组的假设下工作,情况可能并非如此,但它应该会有所帮助,并且可以转换为其他数据类型

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");
您可以使用
“\n”
将跟踪语句拆分为多行。我不太确定这是否是你在问题中提出的问题

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

如果你问如何打印一行多个记录道,我建议先转换成字符串。假设您将一个矩阵分解为一个行数组。请注意,此代码未经测试,可能存在拼写错误。它还可以在外部数组包含字符串对象数组的假设下工作,情况可能并非如此,但它应该会有所帮助,并且可以转换为其他数据类型

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");
下面的代码

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);
var jaggedArray:Array=新数组(新数组(“1”、“2”、“3”)、新数组(“3”、“4”、“5”);
var输出:String=“”;
对于(变量i:Number=0;i
…生成以下输出:

这就是你要找的吗?如果是这样,请不要像我那样使用难看的字符串连接,最好使用如上所述的缓冲区

锯齿状数组是指其元素为数组的数组。它的特点是它的元素可以有不同的大小

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);
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 jaggedArray:Array=新数组(新数组(“1”、“2”、“3”)、新数组(“3”、“4”、“5”);
var输出:String=“”;
对于(变量i:Number=0;i
…生成以下输出:

这就是你要找的吗?如果是这样,请不要像我那样使用难看的字符串连接,最好使用如上所述的缓冲区

锯齿状数组是指其元素为数组的数组。它的特点是其元素可以具有不同的大小

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...
}
但对于阵列,您可以这样做:

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...
}

为了解决这个问题,我个人刚刚创建了一个新的类,它允许我给这个类写信;然后执行跟踪命令:

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

简单、有效且非常有用。

为了解决这个问题,我个人刚刚创建了一个新类,允许我向该类编写代码;然后执行跟踪命令:

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

简单、有效且非常有用。

如果这是您需要的答案的最后一部分,请接受jdecuyper的答案。这个答案是第一个,基本上是一样的。在我继续编辑我的答案之前,我没有看到它。我的答案最初只包含“\n”部分。如果这是您需要的答案的最后一部分,请接受jdecuyper的答案。这个答案是第一个,基本上是一样的。在我继续编辑我的答案之前,我没有看到它,我的答案最初只包括“\n”部分。