Я пытаюсь скомпилировать существующий проект Flex3 с помощью Flex4 SDK. Я получаю эту ошибку:
Warning: This compilation unit did not have a factoryClass specified in Frame metadata to load the configured runtime shared libraries. To compile without runtime shared libraries either set the -static-link-runtime-shared-libraries option to true or remove the -runtime-shared-libraries option.
Полученный файл примерно такой же, как мой старый скомпилированный файл .swf Flex3. Воспроизведение результирующего файла .swf во Flash Player также приводит к следующим ошибкам:
An Actionscript error ocurred: VerifyError: Error #1014: Class spark.core::SpriteVisualElement could not be found
Если установить для атрибута компилятора static-link-runtime-shared-libraries
значение true, ошибка исчезнет, и все будет в порядке. Тем не менее, размер результирующего .SWF на несколько сотен больше. И это не то, что я хочу.
Я не совсем понимаю концепцию разделяемых библиотек времени выполнения, но кажется, что с возможностью статически связать их, установленной в значение true, библиотеки включены в .swf. Однако мне нравится исключать их из .swf и загружать нужную библиотеку только во время выполнения, так как мой проект, казалось, делал с Flex3 (кстати, я этого не знал).
Если я правильно понимаю, playerglobal.swc должен содержать весь необходимый код для внешних библиотек, которые должен загрузить мой .swf. Нужно ли больше скомпилированных файлов Flex4? Должен ли я что-то сделать с factoryClass в теге метаданных Frame?
Я думаю, что мой вопрос сводится к следующему: как мне скомпилировать файл Flex4 .swf того же размера, что и мой предыдущий скомпилированный файл Flex3 .swf?