I have this working AS, but I want to replace the use of eval()
function getNeighbors(i,j,map){
//create an array which holds our neighbors
var neighborsArray:Array = new Array();
var i:Number;
var j:Number;
var map:Array;
var mapHeight:Number = map.length;
var mapWidth:Number = map[0].length;
var north:Number = i - 1;
var east:Number= j+1;
var south:Number = i + 1;
var west:Number = j-1;
var neighbour1:String = (north>=0)? "t_"+(i-1)+"_"+j : "";
var neighbour2:String = (east<mapWidth) ? "t_"+i+"_"+(j+1) : "";
var neighbour3:String = (south<mapHeight)?"t_"+(i+1)+"_"+j:"";
var neighbour4:String = (west>=0)?"t_"+i+"_"+(j-1):"";
trace("North: "+neighbour1);
trace("East: "+neighbour2);
trace("South: "+neighbour3);
trace("West: "+neighbour4);
trace("----------------");
//push to neighborsArray
for (k=1;k<=4;++k) {
if (eval("neighbour"+k).length > 0){
trace(eval("neighbour"+k));
//var mcName:String= this["neighbour"+k];
var mcName:String = eval("neighbour"+k);
neighborsArray.push(mcName);
}
}
trace("Array "+neighborsArray);
//return array??
}
This is the code block where I use eval. I already tried this[]
for (k=1;k<=4;++k) {
if (eval("neighbour"+k).length > 0){
trace(eval("neighbour"+k));
//var mcName:String= this["neighbour"+k];
var mcName:String = eval("neighbour"+k);
neighborsArray.push(mcName);
}
}
Any ideas