2010-01-27 6 views
1

J'ai un conteneur MovieClip vide dans lequel j'ajoute MovieClips comme des enfants. Mais quand j'essaie d'obtenir les enfants, il ne trace/retourne rien. Voici mon code.Flash Movieclips enfants perdus

// Creating Container 
var competencyContainer:MovieClip = new MovieClip(); 
competencyContainer.name = "competencyContainer"; 
this.addChild(competencyContainer); 

var lastx:Number = 200; 
function createUsers(){ 

// Creating movieclips 
for (var i:Number=0; i<globals.scoreList.length;i++) 
{ 
    var test:MovieClip = new userbox(); 
    test.x= lastx; 
    lastx = lastx+104.3;  
    test.name = String(i); 
    competencyContainer.addChild(test); 
} 

} 

function moveRight(eventObject:MouseEvent){ 

trace("right Pressed"); 
trace(competencyContainer); 
for(var childName in competencyContainer){ 
    trace("child movieclip: " + competencyContainer[childName]); 

} 

Les MovieClips sont réalisés parfaitement à l'écran et ne donnent pas d'erreur. Le code ci-dessus s'exécute. Mais ne montre pas la

trace("child movieclip: " + competencyContainer[childName]); 

Répondre

1

Cela semble fonctionner:

function moveRight(eventObject:MouseEvent) 
{ 

    trace("right Pressed"); 
    var test:Number = competencyContainer.numChildren; 
    trace(competencyContainer.numChildren); 
    for(var i:Number = 0; i < test; i++) 
    { 
     var children:DisplayObject = competencyContainer.getChildAt(i); 
     trace(children.name); 
    } 
} 
+0

+1 c'est la bonne façon de le faire. – Amarghosh

+0

Merci Ararghosh :) –

1

Vous devez utiliser la fonction getChildByName ...

trace("child movieclip: " + competencyContainer.getChildByName(childName)); 
+0

Fait que j'ai ajouté la trace plus tard. D'abord je changeais leurs X-cordinates par getChildByName qui ne fonctionnait pas. –

Questions connexes