Февраль 2011

Руководство по actionscript. часть 7, стр. 001

ГЛАВА 31

Распространение библиотеки классов

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

*\

Ф Термин «библиотека классов» на жаргоне программистов обозначает произвольную

А щ группу классов, распространяемую среди команды разработчиков или по всему миру.

Щ Не путайте этот термин с библиотекой FLA-файла или палитрой Library (Библиотека)

среды разработки Flash. Эти термины относятся исключительно к среде разработки Flash и не являются частью текущего обсуждения.

Продолжение:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30

,31,32,33,34,35,36,37,38,39,40,41,42,43

Руководство по actionscript. часть 7, стр. 002

В ActionScript распространять библиотеку классов между другими разработчиками можно либо просто в виде набора исходных AS-файлов, либо в виде SWF-файла, либо в виде SWC-файла. В этой главе мы рассмотрим все три подхода. Стоит отметить, однако, что ActionScript предоставляет широкий набор возможностей по распространению библиотек классов; в этой главе описаны три конкретные ситуации, однако представленный материал не является исчерпывающим. Дополнительную информацию по распространению библиотек классов можно найти в следующих разделах документации корпорации Adobe:

? Programming ActionScript 3.0 > Flash Player APIs > Client System Environment > ApplicationDomain class (http.7/livedocs. macromedia. com/flex/201/html/18_Client_ System_Environment_175_4.html);

? Building and Deploying Flex 2 Applications > Building Flex Applications > Using Runtime Shared Libraries (http://livedocs. macromedia. com/flex/201/html/rsl_124_l. html).

Файлы примеров, которые будут рассматриваться в этой главе, доступны по адресу http://www. moock. org/eas3/examples.

Совместное использование исходных файлов классов

Начнем с простейшего способа распространения библиотеки классов: совместного использования исходных файлов классов.

Представьте, что вы работаете в небольшой компании Beaver Code, занимающейся разработкой веб-приложений и имеющей свой сайт http://www. beavercode. com. Вы создали класс com. beavercode. effects. TextAnimation, который реализует различные текстовые эффекты. Вы хотите использовать класс TextAnimation на двух других сайтах, над которыми работаете в настоящий момент, — Barky Pet Supplies и Mega Bridal Depot. Вместо того чтобы помещать копию файла класса (то есть файл TextAnimation. as) в папку каждого проекта, вы сохраняете этот файл класса в центральном хранилище и просто обращаетесь к нему из каждого проекта. Например, для сохранения файла TextAnimation. as в операционной системе Windows вы используете следующее местоположение: с: \data\ actionscript\com\beavercode\effects\TextAnimation. as. Чтобыкласс TextAnimation был доступен для обоих проектов, вы включаете директорию c:\data\actionscript в путь к классам каждого проекта (дополнительную информацию по пути к классам можно найти в гл. 7).

Руководство по actionscript. часть 7, стр. 003

Следуя той же логике, если бы ваша команда состояла из нескольких разработчиков, вы могли бы предположить, что удобно разместить классы на центральном сервере, при этом каждый разработчик мог бы воспользоваться ими, добавив папку сервера в путь к классам своих проектов. Например, вы могли бы сохранить все совместно используемые классы на сервере с именем codecentral: \\codecentral\com\ beavercode\ef fects\TextAnimation. as. Однако работать непосредственно с сервером крайне опасно и не рекомендуется.

Если вы сохраняете свои классы на центральном сервере и позволяете разработчикам непосредственно изменять их, то могут возникать ситуации, когда один разработчик перезаписывает изменения другого разработчика. Более того, если часы сервера и часы персонального компьютера программиста не синхронизированы, последняя версия класса может быть не включена в программу на этапе компиляции. Чтобы избежать подобных проблем, вы должны всегда использовать программное обеспечение для контроля версий, позволяющее управлять файлами ваших классов при работе в команде. Двумя популярными (и бесплатными!) вариантами такого программного обеспечения являются CVS (http://www. cvshome. org) и Subversion (http://subversion. tigris. org).

Кроме того, при работе с большими проектами вы также можете захотеть автоматизировать процесс экспорта SWF-файла, используя такой инструмент компиляции, как, например, Apache Ant (http://ant. apache. org).

Информацию об использовании инструмента Ant в приложении Flex Builder 2 можно найти в разделе Using Flex Builder 2 > Programming Flex Applications > Building Projects > Advanced build options > Customizing builds with Apache Ant (http://livedocs. macromedia. com/flex/201/html/build_044_12.html).

Автоматизация экспорта SWF-файла в среде разработки Flash заключается в выполнении консольного JSFL-сценария, который сообщает компилятору Flash о необходимости создания SWF-файла для каждого FLA-файла в вашем проекте. Исчерпывающее рассмотрение консольной компиляции в среде разработки Flash выходит за рамки этой книги, однако ниже представлен небольшой пример, который дает общее представление о содержимом этого сценария в операционной системе Windows:

// Код в файле exportPetSupplies. jsfl: /j ===============================

// Открываем FLA-файл.

Руководство по actionscript. часть 7, стр. 004

Var doc = fl. openDocument(«file:///c|/data/projects/pet/petsupplies. fla»); // Экспортируем SWF-файл.

doc. exportSWF(«fi1e:11Iz | /data/projects/pet/petsuppl ies. swf», true): // Закрываем среду разработки Flash (не обязательно), fl. quit(false);

// Команда, вызываемая из командной строки в директории /pet/: // ====================================================

«[папка_среды_разработки_Р1ash]\f1 ash. exe» exportPetSupplies. jsfl

Чтобы предыдущий пример команды был выполнен, среда разработки Flash не должна быть запущена. После вызова команды в директории c:\data\projects\ pet появится скомпилированный клип petsupplies. swf.

Распространение библиотеки классов в виде SWC-файла

Когда над проектом работает команда удаленных разработчиков или библиотека классов публикуется для всего мира, подход с предоставлением непосредственного доступа к файлам классов может оказаться обременительным. Для удобства инструменты языка ActionScript корпорации Adobe предоставляют возможность включения библиотеки классов в один файл, имеющий формат SWC.

Руководство по actionscript. часть 7, стр. 005

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

Создание библиотеки классов в формате SWC в приложении Flex Builder 2

Чтобы продемонстрировать процесс создания SWC-файла, содержащего библиотеку классов, в приложении Flex Builder 2, мы вернемся к примеру с компанией Beaver Code из предыдущего раздела. Наша библиотека классов будет называться beaver со re и будет помещена в пакет com. beavercore. Название пакета соответствует названию фиктивного сайта http://www. beavercore. com, который был создан разработчиками компании Beaver Code для размещения библиотеки классов beavercore.

Следующие шаги описывают, как создать файл beavercore. swc, содержащий библиотеку классов beavercore. Для простоты библиотека содержит всего один класс — com. beavercore. effects. TextAnimation.

1. В приложении Flex Builder выберите команду меню File > New > Flex Library Project (Файл > Создать > Проект библиотеки Flex).

2. В поле Project name (Название проекта) окна New Flex Library Project (Новый проект библиотеки Flex) введите beavercore, после чего нажмите кнопку Next (Далее).

3. В поле Main source folder (Основная папка исходных файлов) введите src и нажмите кнопку Finish (Готово).

Руководство по actionscript. часть 7, стр. 006

4. Указав в проекте beavercore папку src, выберите команду меню File > New > Folder (Файл > Создать > Папка). В поле Folder name (Имя папки) введите com. Повторите этот процесс, чтобы создать следующую структуру папок: src/com/ beavercore/effects.

5. Указав в проекте beavercore папку effects, выберите команду меню File > New > ActionScript Class (Файл > Создать > Класс ActionScript).

6. В поле Name (Имя) окна New ActionScript Class (Новый класс ActionScript) введите TextAnimation, после чего нажмите кнопку Finish (Готово).

7. В файле TextAnimation. as введите следующий код:

package com. beavercore. effects { public class TextAnimation { public function TextAnimation ( ) { tracer Imagine a text effect with great majesty.»):

}

public function start ( ):void { traceC’Effect now starting.»):

}

}

}

8. На палитре Navigator (Навигатор) выберите папку проекта beavercore, а затем меню Project > Build Project (Проект > Скомпилировать проект).

Руководство по actionscript. часть 7, стр. 007

Обратите внимание, что команда Build Project (Скомпилировать проект) доступна только в том случае, если флажок Project > Build Automatically (Проект > Автоматическая компиляция) снят. Если он установлен, пропустите шаг 8.

В результате выполнения предыдущих шагов приложение Flex Builder 2 создаст файл beavercore. swc и поместит его в папку /bin/. Файл содержит классы проекта в скомпилированном виде. В нашем простом примере приложение Flex Builder добавляет все классы из проекта beavercore в файл beavercore. swc. В более сложной ситуации мы могли бы указать явно, какие классы должны быть включены в этот файл или исключены из него, выбрав команду меню Project > Properties (Проект > Свойства) и определив список классов на вкладке Classes (Классы) свойства Flex Library Build Path (Путь компиляции библиотеки Flex).

Использование библиотеки классов в формате SWC в приложении Flex Builder 2

Теперь, когда мы создали библиотеку классов в формате SWC (beavercore. swc), посмотрим, как использовать ее в проекте.

Предположим, что мы создаем сайт с применением технологии Flash в приложении Flex Builder 2 для компании Barky’s Pet Supplies. При разработке сайта мы хотим

использовать класс TextAnimation из библиотеки классов beavercore. swc. Рассмотрим, как это сделать.

1. В приложении Flex Builder выберите команду меню File > New > ActionScript Project (Файл > Создать > Проект ActionScript).

Руководство по actionscript. часть 7, стр. 008

2. В поле Project name (Название проекта) окна New ActionScript Project (Новый проект ActionScript) введите beaver barkys, после чего нажмите кнопку Next (Далее).

3. В поле Main source folder (Основная папка исходных файлов) введите src.

4. В поле Main application file (Основной файл приложения) введите Barkys.

5. На вкладке Library path (Пути библиотек) нажмите кнопку Add SWC (Добавить SWC).

6. Найдите и выберите файл beavercore. swc из предыдущего раздела, после чего нажмите кнопку Finish (Готово).

7. В файле Barkys. as (который откроется автоматически) введите следующий код:

package { import flash. display. Sprite: import com. beavercore. effects. TextAnimation;

public class Barkys extends Sprite { public function Barkys ( ) { var textAni:TextAnimation = new TextAnimation( ); textAni. start( ):

}

}

}

8. На палитре Navigator (Навигатор) выберите папку проекта beaver_barkys, а затем выберите команду меню Run > Debug Barkys (Выполнить > Отладка Barkys).

Руководство по actionscript. часть 7, стр. 009

В результате выполнения предыдущих шагов компилятор сгенерирует SWF-файл (Barkys. swf), включающий класс TextAnimation, и выполнит этот файл. В окне Console (Консоль) появятся следующие сообщения:

Imagine a text effect with great majesty. Effect now starting.

Как вы видите, класс Barkys создает прямую ссылку на класс TextAnimation, будто последний на самом деле является частью проекта beaver_barkys.

Теперь, когда известно, как создать и распространить библиотеку классов в виде SWC-файла с помощью приложения Flex Builder 2, рассмотрим, как проделать то же самое в среде разработки Flash.

Создание библиотеки классов в формате SWC в среде разработки Flash

Следующие шаги описывают, как использовать среду разработки Flash для создания библиотеки классов с именем beavercore. swc, содержащей единственный класс TextAnimation.

1. Создайте новую папку с именем beavercore в файловой системе. Папка будет содержать исходные файлы для библиотеки классов.

Руководство по actionscript. часть 7, стр. 010

2. В ней создайте структуру вложенных папок: com/beavercore/ef f ects.

3. В папке effects создайте новый текстовый файл с именем TextAnimation. as.

4. В файле TextAnimation. as введите следующий код:

package com. beavercore. effects { public class TextAnimation { public function TextAnimation ( ) { traceCImagine a text effect with great majesty.»);

}

public function start ( ):void { traceC»Effect now starting.»);

}

}

}

5. В папке beavercore создайте новый текстовый файл с именем BeaverCore. as.



Полезные ссылки
Случайные записи
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.103
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.107
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.101
  • 02.03.2011">Руководство по actionscript. часть 5, стр. 084
  • 05.03.2010">Галереи креативных логотипов
  • 12.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.113
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 123
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 052
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 013
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 104
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.79
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 113
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 085
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.30
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 079
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...