Я сделал простой проект во Flash Builder 4, и единственный способ получить SWC-> SWF - это создать проект Flex вместо проекта ActionScript и выбрать «Runtime shared library (RSL)» вместо «»Внешний».Это связано с тем, что в инфраструктуре Flex есть несколько классов, которые обрабатывают загрузку этих библиотек за вас.Он также автоматизирует процесс преобразования (я бы сказал извлечение ).
Теперь, если вы не хотите создавать проект Flex только для этого, вы можете извлечь SWF-файл самостоятельно.Формат файла SWC - это просто Zip, содержащий SWF и файл XML, описывающий содержимое.Затем вы можете динамически загрузить этот извлеченный SWF-файл, используя загрузчик и установив правильный Application Domain .Вот фрагмент моего примера проекта.
public class Web extends Sprite
{
public function Web()
{
//you will not be able to instantiate classes of your library until it's loaded
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("library.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
}
protected function onLoadComplete(event:Event):void
{
//here you can create instances of classes defined in your library
new Asset();
}
}
Вы можете подумать, что это довольно утомительная работа - распаковывать + копировать каждый раз, когда ваши дизайнеры обновляют библиотеку.Вы можете автоматизировать этот процесс с помощью скрипта или файла Ant.К сожалению, если я что-то упустил, похоже, что Flash Builder не хочет, чтобы вы расширяли процесс сборки, поэтому вам все равно потребуется немного ручной работы или полное преобразование в Ant (или что-то подобное) для сборки.*
Удачи!