Всем доброго времени суток.
Помагите найти ошибку в коде, скоро с ума сойду.)

Код AS3:
public static function encode(In:String):String {
if(In.length<2) return "0";
var weight:Object = new Object();
for(var i:Number=0;i<In.length;i++){
weight[In.charAt(i)]=weight[In.charAt(i)]?weight[In.charAt(i)]+1:1;
}
var code:Object = new Object();
for(var j:String in weight){
code[j]=new Object();
code[j]["key"]="";
code[j]["enable"]=true;
code[j]["weight"]=weight[j];
}
var min:Array=new Array(2);
var min_ind:Array=new Array(2);
var new_ind:String;
do{
min_ind=["",""];
min[0]=In.length;
for(j in code){
if(code[j]["enable"] && code[j]["weight"]<=min[0]){
min[1]=min[0];
min[0]=code[j]["weight"];
if(min_ind[0]!="") min_ind[1]=min_ind[0];
min_ind[0]=j;
}
}
new_ind="";
code[min_ind[0]]["key"]="1";
code[min_ind[0]]["enable"]=false;
new_ind+=min_ind[0];
code[min_ind[1]]["key"]="0";
code[min_ind[1]]["enable"]=false;
new_ind+=min_ind[1];
code[new_ind]=new Object();
code[new_ind]["key"]="1";
code[new_ind]["enable"]=true;
code[new_ind]["weight"]=code[min_ind[0]]["weight"]+code[min_ind[1]]["weight"];
} while(code[new_ind]["weight"]<In.length);
trace(JSON.encode(code));
return "";
}
нагло выдаёт мне
Цитата:
|
TypeError: Error #1010: Термин не определен и не имеет свойств.
|
иногда выполняется без ошибки в таком варианте.
если добавить в цикл do..while в конце trace(code[new_ind]["weight"]); то ошибка уходит