Скомпилируйте класс ActionScript из пакета SWF с помощью Flex Builder 3 - PullRequest
1 голос
/ 11 июля 2009

Как настроить проект ActionScript в Flex Builder 3 Pro , чтобы я мог скомпилировать класс ActionScript, который является частью пакета, в swf. Например, класс, который я хочу скомпилировать в swf:

package utils {
    import flash.display.Sprite;
    public class Tool extends Sprite {
        public function Tool() {

    }
}

Возьмите структуру каталогов, подобную следующей:

RootASProject
-RootASProject.mxml
-subASProject1
--subSubASProject1a
---IASModule.as
---ASModule.as
--- ASModule.swf
- subSubASProject2
-utils
--ITool.as
--Tool.as
--Tool.fla
--Tool.swf

RootASProject создается одним разработчиком, subASProject1 и subSubASProject1a, другим разработчиком, utils.Tool, другим лицом. Эта структура каталогов позволяет каждому человеку самостоятельно создавать модули и другие ресурсы и быстро тестировать весь продукт. Также важно отметить, что эти ресурсы загружаются во время выполнения. Итак, определения классов должны быть полностью квалифицированными. Например, Tool.swf содержит / определяет «utils.Tool», а не «Tool».

При разработке только с помощью Flash IDE эта структура каталогов не является проблемой. Мы создаем Tool.fla и назначаем utils.Tool в качестве класса документа, а затем в параметрах публикации Flash IDE устанавливаем путь к классу NOT текущий каталог (.), Но вместо этого каталог RootASProject. Если бы было установлено в текущем каталоге, ошибка будет следующей: файл, найденный в исходном пути, должен иметь ту же структуру пакета '', что и пакет определения, 'utils'. Инструмент Tool.as. Мы знакомы с этим сообщением об ошибке, и поэтому я признаю, что Flex IDE по умолчанию ищет в текущем каталоге подпапку utils, чтобы соответствовать упакованному классу.

В Flex IDE я могу добавить родителя utils, RootASProject, в качестве дополнительного исходного пути, но я не знаю, как остановить flex, чтобы он сначала просматривал текущий каталог.

Используя файл сборки ant, я могу установить исходный путь к RootASProject, и mxmlc может с легкостью собрать utils / Tool.swf. По-видимому, он использует только исходные пути, переданные ему, и не ищет автоматически утилиты в текущем каталоге.

Я знаю, что проблема решена с помощью Flash или Ant. Муравей даже предпочтительнее для больших и автоматических сборок; тем не менее, во время быстрой отладки мне бы очень понравилось оставаться в Flex IDE, чтобы просматривать код с помощью его отладчика.

Ответы [ 2 ]

1 голос
/ 12 июля 2009

Ваша ошибка компиляции не связана с его использованием в качестве класса документа. Ваша структура каталогов должна соответствовать вашему пакету в вашем классе. Простое решение - создать папку с именем «utils» и переместить ваш Tool.as в эту папку.

То, что вы называете "документным" классом, является базовым классом экспортируемого символа. Предполагая, что ваш проект является проектом ActionScript, а вышеприведенный класс помечен как ваше приложение, он должен работать должным образом.

0 голосов
/ 28 октября 2009

Если вы используете Flex Builder 3 или выше, просто создайте новый проект ActionScript, выбрав «Файл»> «Новый»> «Проект ActionScript», и назначьте файл ITool.as в качестве основного файла приложения в нем.

...