2010-03-08 4 views
0

J'ai trouvé qu'il est très utile de charger un fichier swf dans AS en classe (ce que faisaient les métadonnées Embed). Cependant, je suis dans le pétrin de faire exactement la même chose au contenu qui n'est pas chargé dans la compilation (Loader et URLRequest). Comment puis je faire ça?charger un contenu en tant que classe dans Actionscript 3.0?

Répondre

1

Si vous souhaitez charger une classe spécifique pour l'instancier, il existe deux façons. L'une consiste à utiliser la méthode getDefinitonByName() et l'autre à importer la classe normalement à partir d'un SWC mais en excluant le SWC lors de la compilation. Dans les deux cas, vous devez vous assurer que le fichier SWF contenant la classe est chargé lorsque vous tentez de l'instancier.

Exemple:

1/Créer un library.fla avec vos actifs

2/Export library.swf (cochez SWC d'exportation si vous souhaitez utiliser la 2ème solution)

3/dans un autre document charge library.swf

4/Lorsque la bibliothèque .swf est chargée, essayez:

var MyClass:Class = getDefintionByName("Ball"); 
var ball1:MovieClip = new MyClass(); 
var ball2:MovieClip = new MyClass(); 

Si vous voulez utiliser la méthode SWC, ajoutez simplement library.swc à votre classpath et assurez-vous de l'exclure lors de la compilation (vérifiez la documentation de votre environnement ou faites-moi savoir ce que vous utilisez). Procédez ensuite de la même manière que précédemment en préchargeant le fichier library.swf avant de procéder à l'instanciation. La bonne chose est que vous serez en mesure d'écrire: new Ball(); de manière transparente ...

Questions connexes