структура импорта и упаковки в as3 / flex - PullRequest
0 голосов
/ 15 апреля 2010

У меня проблема с организацией файлов и пакетов в проекте AS3 / Flex. Краткое введение в проблему:

Структура файлов в проекте (и должна оставаться) выглядит следующим образом:

libs/Class1/src/<files>
libs/Class2/src/<files>
libs/Class3/src/<files>

Компилятор amxmlc путь-источника переменная указывает на:

libs/

Мне это нужно, потому что я должен создать подкласс Class1 в Class3. Это подталкивает меня помещать все классы в пакеты, которые выглядят так странно, как это:

package ClassX.src { /* ... */ }

Так на практике это выглядит так:

package Class3.src
{
    import Class1.src.Class1; // I prefer direct imports

    public class Class3 extends Class1 { /* ... */ }
}

Есть ли способ сохранить структуру файлов / папок и избавиться от src в имени пакета. Изменение структуры файлов или компилятор с прямым указанием в каталог базового класса не вариант.
Это действительно сбивает с толку новых программистов, которые присоединяются к проекту, и мы действительно хотим избежать этого.

Большое спасибо за ЛЮБУЮ помощь !!!

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Единственный способ избавиться от пакета src - это изменить структуру файла.

Что касается плагинов, я бы создал отдельный «Проект библиотеки Flex». Затем вы можете либо поместить пакеты подключаемых модулей непосредственно в корневой каталог этого нового проекта, либо, поскольку вы не хотите изменять структуру файлов, вы можете добавить папки в свойствах для подключаемого модуля Flex Library Project на вкладке «Исходный путь» в Путь сборки библиотеки Flex.

Чтобы импортировать плагины из другого проекта, вам нужно добавить проект библиотеки Flex в путь к библиотеке импортируемого проекта (также вкладку в свойствах проекта в опции Build Path)

1 голос
/ 16 апреля 2010

Итак, здесь есть две вещи. Первый - это способ включения этих «плагинов» в проект, а другой - оператор импорта.

О плагинах: вам действительно стоит подумать о том, чтобы сделать их SWC. Вы можете создавать подклассы классов, которые есть в SWC, поэтому нет необходимости иметь код там. Просто мое внутреннее чувство говорит мне, что это может вызвать много путаницы.

Об импорте: я не думаю, что есть способ обойти это, если вы не измените структуру вашего пакета. Как вы заметили, '*' будет импортировать пакеты только на одном уровне, поэтому вам придется импортировать каждый пакет / класс.

...