Emveedee
%Europe/Berlin %743 %2006, 18:50
Ik heb een scriptje geschreven, dat aan de hand van een array die ik invoer, een andere array maakt.
De eerste array is een 2d array, de array die eruitkomt is een 3d array.
(Dit script heb k gemaakt om me heel veel array-schrijfwerk te besparen)
var heightArray:Array = new Array(
[400,400,405,410],
[400,400,405,405],
[400,395,400,405],
[395,390,395,400],
[400,395,400,400],
[400,400,400,400]
);
function calculateArray(item:Array):Void{
var aWidth:Number = item[0].length;
trace("aWidth: "+aWidth);
var aHeight:Number = item.length;
trace("aHeight: "+aHeight);
var tArray:Array = new Array();
var ttArray:Array = new Array();
var size:Number = 50;
for(var h = 0; h < aHeight; h++){
for(var w = 0; w < aWidth; w++){
ttArray.push(w*size);
ttArray.push(item[h][w]);
ttArray.push(h*size);
tArray.push(ttArray);
ttArray = new Array(); //Hier zou tt Array leeggemaakt moeten worden.
trace(tArray);
}
myArray.push(ttArray);
tArray = new Array();
}
}
calculateArray(heightArray);
Het probleem is nu het volgende:
ttArray wordt niet leeggemaakt, zodat de array veel te groot wordt, en niet klopt.
0,400,0
0,400,0,50,400,0
0,400,0,50,400,0,100,405,0
0,400,0,50,400,0,100,405,0,150,410,0
0,400,50
0,400,50,50,400,50
0,400,50,50,400,50,100,405,50
0,400,50,50,400,50,100,405,50,150,405,50
0,400,100
0,400,100,50,395,100
0,400,100,50,395,100,100,400,100
0,400,100,50,395,100,100,400,100,150,405,100
0,395,150
0,395,150,50,390,150
0,395,150,50,390,150,100,395,150
0,395,150,50,390,150,100,395,150,150,400,150
0,400,200
0,400,200,50,395,200
0,400,200,50,395,200,100,400,200
0,400,200,50,395,200,100,400,200,150,400,200
0,400,250
0,400,250,50,400,250
0,400,250,50,400,250,100,400,250
0,400,250,50,400,250,100,400,250,150,400,250
Dit maakt hij..
Maar dit moet t zijn
0,400,0,50,400,0,100,405,0,150,410,0
0,400,50,50,400,50,100,405,50,150,405,50
0,400,100,50,395,100,100,400,100,150,405,100
0,395,150,50,390,150,100,395,150,150,400,150
0,400,200,50,395,200,100,400,200,150,400,200
0,400,250,50,400,250,100,400,250,150,400,250
Wat doe ik fout?
De eerste array is een 2d array, de array die eruitkomt is een 3d array.
(Dit script heb k gemaakt om me heel veel array-schrijfwerk te besparen)
var heightArray:Array = new Array(
[400,400,405,410],
[400,400,405,405],
[400,395,400,405],
[395,390,395,400],
[400,395,400,400],
[400,400,400,400]
);
function calculateArray(item:Array):Void{
var aWidth:Number = item[0].length;
trace("aWidth: "+aWidth);
var aHeight:Number = item.length;
trace("aHeight: "+aHeight);
var tArray:Array = new Array();
var ttArray:Array = new Array();
var size:Number = 50;
for(var h = 0; h < aHeight; h++){
for(var w = 0; w < aWidth; w++){
ttArray.push(w*size);
ttArray.push(item[h][w]);
ttArray.push(h*size);
tArray.push(ttArray);
ttArray = new Array(); //Hier zou tt Array leeggemaakt moeten worden.
trace(tArray);
}
myArray.push(ttArray);
tArray = new Array();
}
}
calculateArray(heightArray);
Het probleem is nu het volgende:
ttArray wordt niet leeggemaakt, zodat de array veel te groot wordt, en niet klopt.
0,400,0
0,400,0,50,400,0
0,400,0,50,400,0,100,405,0
0,400,0,50,400,0,100,405,0,150,410,0
0,400,50
0,400,50,50,400,50
0,400,50,50,400,50,100,405,50
0,400,50,50,400,50,100,405,50,150,405,50
0,400,100
0,400,100,50,395,100
0,400,100,50,395,100,100,400,100
0,400,100,50,395,100,100,400,100,150,405,100
0,395,150
0,395,150,50,390,150
0,395,150,50,390,150,100,395,150
0,395,150,50,390,150,100,395,150,150,400,150
0,400,200
0,400,200,50,395,200
0,400,200,50,395,200,100,400,200
0,400,200,50,395,200,100,400,200,150,400,200
0,400,250
0,400,250,50,400,250
0,400,250,50,400,250,100,400,250
0,400,250,50,400,250,100,400,250,150,400,250
Dit maakt hij..
Maar dit moet t zijn
0,400,0,50,400,0,100,405,0,150,410,0
0,400,50,50,400,50,100,405,50,150,405,50
0,400,100,50,395,100,100,400,100,150,405,100
0,395,150,50,390,150,100,395,150,150,400,150
0,400,200,50,395,200,100,400,200,150,400,200
0,400,250,50,400,250,100,400,250,150,400,250
Wat doe ik fout?