Erreur de 2006, L'Index est Fourni en Dehors des Limites
Un autre jour, un autre problème malheureusement - la dernière ligne de ce morceau de code est le coupable:
uiBar = new mcUiBar();
uiBar.x=-15;
uiBar.y=-5;
addChildAt(uiBar, numChildren-1);
Maintenant, j'ai fait des recherches et je sais qu'il a quelque chose avec le tableau étant plus grande que les autres, mais je ne suis pas en train de comprendre. Je suis perplexe. Je vous remercie de votre aide. Cheers
Vous devez vous connecter pour publier un commentaire.
Cette erreur fondamentalement, c'est dire que la valeur que vous fournissez pour l'indice est "hors de portée" de la table d'index dans le conteneur d'objet d'affichage. La plage acceptable est de
0
àn+1
où n est le premier enfant de l'index. Une autre façon de dire que c'est0
ànumChildren
. Si George est à droite, vous allez avoir des problèmes lors de l'numChildren - 1 = -1
.Si vous essayez d'ajouter de l'enfant à la de la prochaine top couche, utiliser l'instruction if ci-dessus. Toutefois, si vous êtes juste essayer de l'ajouter à la couche supérieure, vous devez soit utiliser
addChildAt(child, numChildren)
ouaddChild(child)
qui sont synonymes.Trop peu de code, mais que la dernière ligne:
addChildAt(uiBar, numChildren-1);
semble être le problème.Ce qui se passe si il n'y a pas d'enfants encore ajouté (numChildren est 0) ?
Que doit lever une erreur parce que vous essayez d'ajouter uiBar en profondeur/index -1
essayer
addChildAt(uiBar, numChildren > 0 ? numChildren-1 : 0);