2011-11-03 2 views
0

C'est la première fois que j'utilise la récursivité dans ActionScript donc je suis sûr qu'il y a quelque chose que je ne comptabilise pas. Ce que j'essaie de faire, c'est d'itérer à travers les enfants de la scène et de retracer ce qu'est l'enfant et l'index. Voici du code.récursivement obtenir tous les enfants, petits-enfants, etc de scène dans AS3

public function recurseStage(dOC:DisplayObjectContainer) 
    { 
     var numCh = dOC.numChildren; 
     for(var i = 0; i < numCh; i++) 
     { 
      var child = dOC.getChildAt(i); 
      trace("child: " + child + " at i: " + i); 

      if(child.numChildren > 0) 
      { 
       recurseStage(child); 
      } 
     } 
    } 

la zone à problème semble être l'appel recurseStage() réel à la fin. Ainsi que l'instruction if avant cela. Je sais que tous les enfants n'auront pas la propriété .numChildren mais je ne sais pas quoi utiliser à la place. Cela devrait être une solution facile, mais mon cerveau ne m'aide pas en ce moment. Aussi s'il y a un meilleur moyen que cela, s'il vous plaît faites le moi savoir. Merci d'avance.

Répondre

2

utilisation
if (child is DisplayObjectContainer && child.numChildren > 0)

au lieu de

if(child.numChildren > 0)

+0

Merci! C'est ce qu'il a fait. J'avais essayé chacun d'entre eux par eux-mêmes, mais pour une raison quelconque n'a pas essayé les deux. Merci encore. – James

+0

@James, acceptez ceci, si cela vous a aidé –

+3

Désolé, cela m'a fait attendre plusieurs minutes avant que je puisse accepter. – James

Questions connexes