Модули Flex 4 - нельзя включать классы, если они не находятся в той же папке, что и модуль?Что мне не хватает? - PullRequest
0 голосов
/ 29 сентября 2010

Я играю с проектом Flex 4 / Air 2, который загружает модули во время выполнения.Я могу включить в свой модуль встроенные классы MX, и все работает нормально (например, import mx.controls.Alert).

Я также могу включить свои собственные классы - однако только если класс находится вта же папка, что и у модуля.

например:

<?xml version="1.0"?> 
<mx:Module> 
    <mx:Script> 
        <![CDATA[ 
        import mx.controls.Alert; // works
        //import MyTestClass;       // works if MyTestClass.as is in same folder as module
        //import Classes.MyTestClass; // throws compiler error


    ]]> 
    </mx:Script> 
</mx:Module> 

Структура папки:

.
|-- Classes
    |-- MyTestClass.as
|-- Modules
    |-- MyModule.mxml
`-- application.mxml

Итак, когда я пытаюсь скомпилировать мой модуль при импорте "Classes.MyTestClass ", компилятор выдает следующую ошибку:

« Ошибка: определение классов: MyClass не найден »

Я знаю, что путь к классуЭто правильно, и если я скомпилирую проект как приложение, а не как модуль, все будет AOK.

Кроме того, если я импортирую «Classes.MyTestClass» в родительское приложение, все в порядке.Поэтому я предполагаю, что мне не хватает опции компилятора для включения этих классов в модуль, но я понятия не имею, что!Вот как я собираю модуль:

mxmlc -static-link-runtime-shared-library = true -load-externs = .. / obj / exclude.xml -isolate-styles = false../src/Modules/MyModule.mxml

"../ obj / exclude.xml" - это отчет о ссылках из приложения "Родитель".

Может ли кто-нибудь помочь какк чему я скучаю?

1 Ответ

0 голосов
/ 29 сентября 2010

Вам нужно включить папку классов в качестве исходного пути, чтобы компилятор мог найти этот класс.

Добавьте эту команду к mxmlc:

-source-path /src/Classes
...