«Ошибка # 1014: класс mx.core :: BitmapAsset не найден» при попытке использовать общую библиотеку времени выполнения - PullRequest
3 голосов
/ 09 августа 2011

Я сделал разделяемую библиотеку времени выполнения для своего проекта, назовем ее ResourceLibrary. Он содержит все встроенные ресурсы для моего проекта (изображения, звуки, видеоклипы) и используется в качестве одиночного кода во многих других фрагментах кода.

Я компилирую его с помощью этого пакета (Windows, к сожалению):

SET normalstuff=--namespace+=http://ns.adobe.com/mxml/2009,${flexlib}/mxml-2009-manifest.xml --namespace+=http://www.adobe.com/2006/mxml,${flexlib}/mxml-manifest.xml --namespace+=library://ns.adobe.com/flex/spark,${flexlib}/spark-manifest.xml -external-library-path lib -external-library-path+=${flexlib}/libs -external-library-path+=${flexlib}/libs/player/10.0
call compc -source-path src/ -output lib-ext/resources.swc -include-namespaces+=http://MYPROJECT -namespace+=http://MYPROJECT,confs/ResourceLibrary-manifest.xml %normalstuff% -library-path+=data/characters -library-path+=data/menus -library-path+=data/icons/relationships  -include-lookup-only=true 

Это делает мой файл resources.swc, который, когда я включаю этот swc в свою библиотеку и имею -static-link-runtime-shared-library = true. Но я не хочу встраивать мои общие библиотеки времени выполнения в мой основной swf (сокращает размер файла с 10 МБ до ~ 3 МБ), поэтому static-link-runtime-shared-library должно быть ложным.

Однако, когда я запускаю свой код, я получаю эту ошибку:

[Starting debug session with FDB]
[Fault] exception, information=VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found.

Я ломал голову над этим, вероятно, супер простым решением, но везде, где я смотрю, все остальные получают ответ «static-link-runtime-shared-library to true».

У кого-нибудь есть какие-нибудь подсказки / идеи о том, с чего начать?

Ответы [ 3 ]

1 голос
/ 03 сентября 2011

Я понял это, но забыл опубликовать здесь.

Что вам нужно сделать, это сказать, где будет расположен SWF, который будет использоваться, и какие классы будут в нем (аргумент SWC)

-runtime-shared-library-path=lib/MyLibrary.swc,MyLibrary.swf

Затем я извлекаю swc (используя 7zip, но все работает) и переименовываю извлеченный swf в «MyLibrary.swf» и перемещаю его в тот же каталог, что и моя основная программа.

0 голосов
/ 09 августа 2011

Вы знаете, что создание SWC не RSL, верно?SWC = библиотека времени компиляции.SWF = библиотека времени выполнения (или SWZ, если это подписанные Adobe библиотеки).

http://livedocs.adobe.com/flex/3/html/help.html?content=rsl_01.html#168690 http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.html

0 голосов
/ 09 августа 2011

Если вы используете SDK, который не соответствует используемой версии Flash Builder, возможно, вам придется вручную ссылаться на этот SDK в свойствах проекта.

...