[AS3] Recursivité d'une fonction
Voila je suis en train de faire une fonction récursive et je m'apperçois d'un drole de fénomène.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public function RecursiveFindChildByName(objet:DisplayObject, name:String):DisplayObject{
var item:DisplayObject;
var result:DisplayObject=null;
if (Container(objet).name != name){
var max:int=Container(objet).numChildren;
var i:int;
for (i=0;i<max;i+=1) {
item = Container(objet).getChildAt(i);
if (item.name.toString() == name){
Alert.show('Trouvé ' + name,objet.name);
result = item;
}else{
Alert.show('Plip');
result = RecursiveFindChildByName(item,name);
Alert.show('Plop');
}
// trouvé on quitte la boucle
//if (result!=null) break;
}
}else{
result = DisplayObject(objet);
}
return result;
} |
un parcours de container avec recherche.
Lorsque je lance la fonction le declanchement de
result = RecursiveFindChildByName(item,name);
Arrete l'execution de la fonction en cours
En gros je n'ai jamais de 'plop' !!!!
Du coup ma boucle for s'arrête et le parcours est incomplet !
Et ma question c'est un truc du genre 'mais c'est quoi cette merde ?' ^^
Quelqun a déjà eu ce probleme ?
Faut il que je crée un objet juste pour pouvoir faire de la récusivité de ce type ?