Ne le pensez pas, vous devrez peut-être charger le swf entier avant d'utiliser getDefinition().
Une solution de contournement que je peux penser est de diviser le swf en plusieurs différents. Soit en nommant les swf par la classe qu'ils contiennent, soit en stockant quelques paires de noms de fichiers swf/classes contenues dans un fichier texte/xml et en utilisant cela pour charger les ressources par leur nom.
Jetez un oeil à BulkLoader, cela pourrait vous faire gagner du temps.
Si vous utilisez l'IDE Flash, j'ai écrit un script simple JSFL qui devrait rendre les choses moins fastidieux:
var doc = fl.getDocumentDOM();
var dir = 'file:///' + doc.path.substr(0,(doc.path.lastIndexOf('/')+1));
var lib = doc.library;
var code = 'var loader : BulkLoader = new BulkLoader("assets");\n';
var items = lib.items;
var iNum = items.length;
var path;
var name;
fl.outputPanel.clear();
for(var i = 0 ; i < iNum ; i++){
if(items[i].linkageExportForAS){
name = items[i].linkageClassName;
path = dir+name+'.swf';
items[i].exportSWF(path);
code += 'loader.add("'+(name+'.swf')+'", {id:"'+name+'"});\n';
}
}
fl.clipCopyString(code);
fl.outputPanel.trace('symbols exported as swfs, code is in your clipboard');
Tout ce qu'il fait est boucles trouvé que les éléments de la bibliothèque, et pour les symboles qui sont exporté pour actionscript, il exporte un fichier swf (où le nom de classe est utilisé comme nom de fichier) et génère un extrait de chargement en bloc.
meilleure façon d'obtenir dans Flash est la suivante:
- Créer une nouvelle Flash JavaScript Fichier (Fichier> Nouveau> Flash Fichier JavaScript)
- Collez le code
- Save the fichier comme ASSymbolsToFiles ou quelque chose. Il le fichier devrait par défaut dans le dossier Commandes, ce qui signifie que vous pouvez l'utiliser à travers le Commandes menu. Vous pouvez également définir un raccourci clavier, si nécessaire.
Le code généré peut ne pas être parfait, mais il vous donne une idée, et il devrait être assez lisible pour des réglages faciles.
HTH, George