2009-08-26 9 views
0

Je viens de soumettre cette question, mais je ne peux pas voir si elle posté nulle part, donc je suis désolé si c'est un doublon.Comment ajouter tous les symboles dans le dossier de la bibliothèque à l'étape de l'exécution

Pour un projet Flash CS4, j'importe constamment de nouvelles images, les convertissant en clips vidéo et les stockant dans la bibliothèque sous un dossier "Ornements". Tous ces ornements doivent être sur la scène à un certain endroit lorsque le programme est initialisé. Au lieu d'avoir à faire glisser les nouveaux symboles sur la scène chaque fois que j'ajoute un nouveau, est-il possible d'ajouter tous les symboles dans le dossier de la bibliothèque "Ornament" à la scène lors de l'exécution?

Merci

Répondre

1

Vous pouvez le faire dans le code si vous le souhaitez, mais vous devez encore ajouter les noms des symboles du code. C'est-à-dire, le dossier est simplement une commodité pour organiser dans la bibliothèque CS4 et il ne traduit pas au code (AFAIK).

Pour instancier l'élément dans AS3, faites un clic droit sur le symbole dans la bibliothèque et cochez la case "Exporter pour ActionScript". Si vous ne pouvez pas le voir, cliquez sur le bouton Avancé. Il donnera par défaut la classe au nom du symbole. Ce sera la classe que vous pouvez instancier dans ActionScript pour mettre une instance sur scène.

Vous pouvez garder un tableau des noms d'ornement et de la boucle à travers eux en les ajoutant à la scène:

var ornaments:Array = [OrnamentGold, OrnamentSilver, OrnamentBronze]; 

for each(var ornament:Class in ornaments) 
{ 
    var ornamentClip:MovieClip = new ornament(); 
    addChild(ornamentClip); 
} 

Si vous nommez tous vos cas, le même avec seulement un chiffre de fin incrémentée, vous pouvez enregistrer vous-même un certain temps et juste incrémenter un seul nombre:

const NUM_ORNAMENTS:int = 5; 

for(var i:int = 0; i < NUM_ORNAMENTS; i++) 
{ 
    // ornaments are names Ornament0, Ornament1, Ornament2, etc. in the library 
    var ornamentClass:Class = new getDefinitionByName("Ornament" + i) as Class; 
    var ornamentClip:MovieClip = new ornamentClass(); 
    addChild(ornamentClip); 
} 
+0

Cela semble bon. C'était ce que j'allais essayer. Je voulais juste savoir s'il y avait un moyen d'accéder aux dossiers via ActionScript. Merci! –

+0

Cela a bien fonctionné! –

Questions connexes