2010-02-01 3 views
0

Je porte un ancien projet AS2 à AS3, Et j'ai rencontré un problème. J'ai essayé plusieurs choses mais je n'ai pas eu de succès.dynamiquement ajouter des enfants de la bibliothèque en utilisant le tableau

dans AS2 lors de l'attachement dynamique d'un MC de la bibliothèque j'utiliserais parfois un tableau. le tableau contiendrait des références de liaison, comme ça;

var mc:String = state_ar[currentState]; 
this.container.attachMovie(mc,mc,this.getNextHighestDepth()); 
targetMC = this.container[mc]; 

Comment est-ce que je ferais ceci dans AS3?

Répondre

2

Vous faire en utilisant getDefinition() ou getDefinitionByName()

Découvrez this answer pour Code, votre situation semble tout à fait similaire. La seule différence est que vous utilisez des MovieClips, pas des images, vous n'avez donc pas besoin des arguments 0,0 dans le constructeur.

1

Je ne sais pas si c'est ce que vous demandez, mais je vais essayer.

//New array to store Movie Clips references  
var myArray:Array = new Array(); 
//Create a movie clip 
var movieClip:MovieClip = new MovieClip(); 
//Add it to the array for reference 
myArray.push(movieClip); 
//Put it on the stage 
this.addChild(movieClip); 

Vous pouvez toujours utiliser des tableaux pour stocker des références à un objet et vous pouvez les référencer directement.


En AS3 les MovieClips dans la bibliothèque auront un nom de classe, donc si vous avez un MC dans la bibliothèque appelée MyMovie vous ajouteriez en AS3 avec:

var myMovie:MyMovie = new MyMovie(); 
addChild(myMovie); 
+0

désolé, je ne me suis pas très bien expliquer. le tableau a été utilisé pour stocker (ce qui a été appelé dans AS2) des liens. Par exemple ; J'ai 3 MovieClips différents dans ma bibliothèque, chacun avec son propre id de liaison. je crée un tableau; state_ar = ['link_1', 'link_2', 'link_3']; puis référencez un index à partir du tableau; var linkageID: String = state_ar [0], puis attachez le film; attachMovie (linkageID, linkageID, this.getNextHighestDepth()). – Cam

+0

As3 est orienté objet afin que vous puissiez créer et ajouter des clips vidéo en les instanciant voir mon code édité. J'espère que cela pourra aider. – TripWired

+0

merci pour votre réponse TripWired, mais la question se réfère à autre chose. – Cam

1

Réponse;

var mc:String = state_ar[currentState]; 
var classReference:Class = getDefinitionByName(mc) as Class; 
var tempMC:Object = new classReference(); 
this.container.addChild(tempMC) 

Merci George

Questions connexes