Используя Flash CS4, я создаю игру с дюжиной или около того звуков и парой музыкальных треков. Чтобы сократить время публикации / компиляции, я переместил звуки и музыку в (внешний) SWC, который находится в «пути к библиотеке» для проекта. Это работает, но с оговоркой ...
До тех пор, пока я не экстернализовал ресурсы, я динамически создавал экземпляры Sound
объектов встроенного звука, получая их классы с getDefinitionByName
.
// something like...
var soundSubClass:Class = Class(getDefinitionByName(soundClassName));
var mySound:Sound = new soundSubClass();
Но теперь, когда они расположены во внешнем SWC, мне нужно иметь «конкретные» ссылки на классы, чтобы загрузить их таким образом, иначе они не будут включены в опубликованный SWF, и возникнет ошибка времени выполнения. когда getDefinitionByName
пытается получить класс, который не существует.
Итак, мой вопрос : есть ли во Flash Professional CS4 какой-либо способ принудительно включить активы библиотеки независимо от того, статически ли они связаны?
FlashDevelop имеет опцию компилятора «SWC Include Libraries», которая является именно тем, что я хочу, и отличается от опции «SWC Libraries». Описание параметра «Включить библиотеки SWC» - «Связывает все классы в файле SWC с результирующим файлом SWF приложения, независимо от того, используются они или нет».
(Кроме того, для меня важно, чтобы все ресурсы содержались в одном скомпилированном SWF-файле. Связывание во время выполнения - это не то, что мне нужно.)