Как включить комплекты ресурсов в модули ActionScript с помощью Flex 4.1?

В простейших проектах Flex создайте модуль Flex MXML, а затем загрузите его с помощью ModuleManager. Нет проблем. Создайте класс ActionScript, расширяющий модуль, а затем настройте проект для его компиляции в модуль. Загрузите этот новый модуль вместо. Проект компилируется, но падает при запуске со следующей ошибкой:

"Ошибка: не удалось найти" контейнеры "скомпилированного пакета ресурсов для локали" en_US "."

Я считаю, что компилятор не может скомпилировать необходимые определения классов в модуль только ActionScript, в то время как он успешно выполняется для модуля MXML. Я вижу, что мой каркасный модуль MXML немного больше, чем мой модуль ActionScript (66 КБ против 45 КБ).

Как я могу решить эту проблему (если это действительно проблема)?

3 ответа

У меня была такая же проблема при компиляции библиотеки SWC. Мне удалось это исправить, добавив следующий раздел в проекты projectName-config.xml

    <include-libraries append="true">
        <library>${flexlib}/locale/{locale}/framework_rb.swc</library>
    </include-libraries>

Это заставляет компилятор включать пакет ресурсов фреймворка для указанной локали.

Для меня проблема заключалась в том, чтобы выяснить, какой проект - в моем случае библиотека - и какой класс в этой библиотеке вызвал такое поведение (мне нужно было реализовать свои последние изменения - никакой информации от flashbuilder). Затем, применяя следующий атрибут к классу:

[ResourceBundle("containers")]
public class IpChecker {
...

Это добилось цели.

Хороший подход в подобных ситуациях - использовать -keep-генерируемый-actioncript для двух проектов, один с подходом mxml, а другой с действием actioncript. Затем вы можете сравнить код, чтобы увидеть, что может отсутствовать в одном проекте, но включено в другой.

Вы пытались добавить явную ссылку на [ResourceBundle("контейнеры")] в свой класс проекта ActionScript? Поведение mxmlc отличается от компилятора compc по многим уважительным причинам.

Другие вопросы по тегам