Не думайте, что вам может понадобиться загрузить весь swf перед использованием getDefinition ().
Обходной путь, о котором я могу подумать, - это разделить swf на множество разных.
Либо назовите swf-файлы по классам, которые они содержат, либо сохраните несколько пар swf-файлов / содержащихся классов в текстовом файле / xml и используйте их для загрузки ресурсов по имени.
Посмотрите на BulkLoader , это может сэкономить вам время.
Если вы используете Flash IDE, я написал простой скрипт jsfl, который должен
менее утомительно:
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');
Все, что он делает - это циклически обрабатывает элементы библиотеки и для символов, экспортируемых для actionScript, он экспортирует файл swf (где имя класса используется в качестве имени файла) и генерирует фрагмент массового загрузчика.
Самый простой способ получить его во Flash это:
- Создать новый Flash JavaScript
Файл (Файл> Создать> Flash
Файл JavaScript)
- Вставьте код
- Сохраните файл как ASSymbolsToFiles или что-то в этом роде. Это файл должен
по умолчанию для папки Commands,
а это значит, что вы можете использовать его через
Команды меню. Вы также можете
при необходимости установите сочетание клавиш.
Сгенерированный код может быть не идеальным, но он дает вам представление, и он должен быть достаточно читабельным для легкой настройки.
НТН,
George