AS3数组到Object

时间:2012-06-21 13:35:58

标签: actionscript-3 flash

我有这个数组var ar:Array = [234*256,558*698,256*784...]; 我想将它转换为2个数组,其中第一个元素(在*之前)进入

var ar_x:Array;

和第二个元素(在*之后)进入其他数组

var ar_y:Array;

怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

如果您在编译时知道这些值,只需将它们放在两个单独的数组中即可。

你不能在运行时将它们分开,因为你把它们放在这样:

 var ar:Array = [234*256,558*698,256*784];

乘法将被计算并存储在数组中,您将在运行时获得:

 var ar:Array = [59904,389484,200704];

另一方面,如果值来自外部源,则为字符串“234 * 256”您可以将其从*符号中分离出来,并将这两个部分存储在单独的数组中。

 var multiply:String = "234*256";
 var parts:Array = multiply.split("*");
 ar_x.push(parts[0]);
 ar_y.push(parts[1]);

答案 1 :(得分:0)

我知道了!

代码如下所示:

var def_poss:Array = [def_pos[i][1],def_pos[i][2],def_pos[i][3],def_pos[i] [4],def_pos[i][5],def_pos[i][6],def_pos[i][7],def_pos[i][8],def_pos[i][9],def_pos[i][10],def_pos[i][11]];
}
for (var m:int=0;m<def_poss.length;m++)
{
    var temp_def:Array = def_poss.toString().split("*");
}
for (var n:int=0;n<temp_def.length;n++)
{
    var parts:Array = temp_def.toString().split(",");
    def_x.push(parts[0]);
    def_y.push(parts[1]);
    def_x.push(parts[2]);
    def_y.push(parts[3]);
    def_x.push(parts[4]);
    def_y.push(parts[5]);
    def_x.push(parts[6]);
    def_y.push(parts[7]);
    def_x.push(parts[8]);
    def_y.push(parts[9]);
    def_x.push(parts[10]);

}

首先我必须split ("*")得到奇怪的数组["255","255,586".....],然后通过该数组迭代split(",")然后将部分推送到单独的数组

感谢您的帮助!