Среда разработки AS3 (часть 4). Классы AS3 (часть 5).

4. Среда разработки AS3

4.1. Выбор среды разработки AS3

Выбор среды разработки для проектов AS3 остается за Вами, но в данной серии уроков я постараюсь как можно меньше привязываться к конкретной. Для компиляции готовых файлов можно использовать Flex Builder, Flash Professional, FlashDevelop, Eclipse и др., описание основной массы которых Вы найдете на данном сайте.

В данной серии уроков я буду использовать Notepad++ и бесплатный компилятор mxmlc из состава FlexSDK. Почему мой выбор пал именно на них? Я не хочу, чтобы Вы зависели от каких-либо конкретных сред разработки. Хочу чтобы Вы научились обходиться при помощи простого блокнота и компилятора файлов *.as и *.mxml. С такими знаниями Вам не будут страшны трудности связанные со сменной среды разработки. Notepad++ поддерживает подсветку кода (syntax highlight) написанного на AS3, что будет достаточным удобством для начального этапа разработки.

4.2. Настройка среды разработки AS3

Нам необходимо установить следующие компоненты:

  • Notepad++;
  • Flex SDK — содержит необходимый нам компилятор mxmlc;
  • JavaRE — необходим для работы mxmlc.

Если без первого еще можно обойтись то без второго и третего не получится.

Процесс настройки среды разработки AS3:

  • Скачиваем последнюю версию Notepad++ по адресу — http://notepad-plus-plus.org/download.
  • Устанавливаем Notepad++.
  • Скачиваем последнюю версию FlexSDK по адресу — http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK.
  • Распаковать FlexSDK  — c:\flex\.
  • Для работы FlexSDK нам понадобится Java Runtime Environment — http://java.com/ru/download/.
  • Устанавливаем JavaRE.
  • Делаем возможным запуск компилятора из любой директории.
    Открываем «Свойства» объекта «Мой компьютер». В разделе «Дополнительно» открываем «Переменные среды». Редактируем системную переменную «Path» — добавляем в конец следующую строку «;c:\flex\bin». Сохраняем изменения и перезагружаем, чтобы изменения вступили в силу.

Более подробный процесс настройки среды компиляции AS3 и MXML приложений для Windows и Linux.

4.3. Компиляция AS3

На данный момент, слишком подробно рассматривать процесс компиляции мы не будем.

Главное, чтобы у Вас были представления о работе с командной строкой в ОС, которой Вы пользуетесь.

В любом случае, после установки и настройки flexSDK команда компиляции проектов as3 выглядит одинаково.

mxmlc  <путь к главному файлу проекта as3 с расширением *.as>

Если вы распаковали архив с flexSDK, установили JavaRE, но не настроили среду, есть другой вариант, который будет работать в обоих случаях.

<путь к bin каталогу разархивированного sdk>mxmlc <путь к главному файлу проекта as3 с расширением *.as>

Пример:

mxmlc Test.as
c:\flex\bin\mxmlc           c:\testProj\Test.as
/home/<username>/flex/bin/mxmlc         /home/<username>/testProj/Test.as

Результатом таких действий будет файл Test.swf, в случае правильно составленного кода в Test.as.

5. Классы AS3

5.1. Файл класса AS3

Файл класса AS3 должен быть с расширением .as и содержать только один открытый класс. Имя последнего должно совпадать с именем файла. К примеру, если основной открытый класс называется Test то название файла будет Test.as.

К чему здесь понятие «один открытый класс»? Файл класса может содержать несколько классов — основной и вспомогательные, которые используются только локально. В противном случае, если указать несколько открытых классов, компилятор не будет знать какой из всех классов основной и выдаст ошибку.

Если Вам необходимо вспомогательных класс сделать доступным классам всего проекта, необходимо его описать в отдельном файле как основной.

5.2. Пакеты AS3

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

Пример:

package имя {
 
}

Когда класс определяется как часть пакета верхнего уровня, имя пакета можно не писать. Конечно, понятней предназначение пакетов можно объяснить практикой.

Если сравнивать с обыденной жизнью, пакет — это конкретное подразделение, в котором находится определенный сотрудник (Класс). Таким образом, если рассматривать предыдущий пример — сотрудник (Класс) является генеральным директором, тогда подразделение (имя пакета) в файле портфолио (файле описания Класса) можно не указывать.

Если же сотрудник (Класс) находится в подчиненном подразделении, в файле портфолио следует указать подразделение (указать имя пакета), в котором расположен сотрудник(Класс).

С точки зрения файловой системы, структура организации строится древовидно путем использования вложенных каталогов, в которых хранятся файлы описания Классов.

Таким образом, если сотрудник (Класс) с именем Apple находится в подразделении «developers of techDepartment of testCompany», физически его портфолио — файл «.\techDepartment\developers\Apple.as», а имя пакета будет «techDepartment.developers» . Имя компании мы не указываем, т.к. это корень нашего проекта.

Портфолио будет выглядеть:

package techDepartment.developers{
   public class Apple{
   }
}

Благодаря такому подходу мы можем использовать два различных класса с одинаковыми именами, но расположенных в различных каталогах. К примеру, могут быть два сотрудника с одинаковыми именами, но работать в различных подразделениях.

Зачем же использовать такой подход, если можно обойтись и без этого, если использовать различные имена классов? Дело в том, что, в случае больших проектов, либо в случае использования сторонних компонентов, может произойти ситуация совпадения имен классов. Если использовать правильный подход, данные ситуации Вам не грозят.

5.3. Классы AS3

Рассмотрим синтаксис AS3 при описании класса. Создадим файл Test.as:

package {
   import flash.display.Sprite;
   import flash.ui.Mouse;
   import flash.events.MouseEvent;
   import flash.events.Event;
 
   [SWF(width=640, height=480, frameRate=24)]
 
   public class Test extends Sprite{
      //constructor
      public function Test(){
      }
   }
}

Теперь рассмотрим подробно.

  • «package» — зарезервированное слово обозначающее начало пакета. Как Вы уже знаете, может быть указано еще имя пакета, хотя здесь оно отсутствует, т.к. файл находится в корне проекта.
  • Зарезервированное слово import предназначено для указания компилятору, в каком месте искать описание используемых классов. Здесь мы импортируем системные классы. Как Вы и само догадались flash.display – это имя пакета, в котором находится класс Sprite. В данном примере мы отдельно импортируем классы MouseEvent и Event. Можно было воспользоваться конструкцией вида import flash.events.* для импортирования всех классов пакета flash.events. С точки зрения производительности, о которой мы поговорим позже, импортирование всех классов пакета повлечет увеличение размера конечного скомпилированного файла. Увеличение размера – это следствие того, что вместо необходимых двух классов, мы импортируем все классы пакета, которых может быть более 10.
  • Конструкция в квадратных скобках задает начальные настройки конечного файла – ширину, высоту, скорость смены кадров и др. Данная строка принимается во внимание компилятором только в главном файле в проекте, который является отправной точкой в процессе компиляции. Именно этот файл и необходимо передавать на вход компилятору.
  • Следующая строка оповещает, что область видимости данного класса – public. Области видимости переменных, классов и других объектов мы рассмотрим в следующих разделах. Как мы уже обсуждали, пакет может содержать только один открытый класс. Именной поэтому задается область видимости public.
  • Class – это зарезервированное слово, которое используется перед описание класса.
  • Test – имя класса и, следовательно, имя файла должно быть Test.as.
  • Extends – зарезервированное слово. Указывает на то, что класс Test наследует свойства и методы системного класса Sprite. Конкретнее о стандартных системных классах мы поговорим в процессе нашего обучения. По-умолчанию, при создании проекта в Flash Professional основной класс наследуется от класса MovieClip. Отличительной особенностью Sprite от MovieClip является отсутствие временной шкалы, что значительно повышает производительность.
  • Как Вы уже догадались из комментария  — public function Test() – это блок описания конструктора класса Test. Конструктор – это метод, который вызывается каждый раз при создании нового экземпляра Класса, т.е. объекта.

Приступим же к компиляции нашего проекта в Windows:

  • Создадим в директории нашего проекта файл с именем compile.bat следующего содержания:
    cmd /K mxmlc Test.as
  • Запустим compile.bat.

Если все прошло успешно, получим файл Test.swf.

В дальнейшем мы часто будем обращаться к файлу compile.bat, т.к. основную массу примеров построения Flash приложений с использованием AS3 и ООП будем рассматривать на данном проекте класса Test.

Среда разработки AS3 (часть 4). Классы AS3 (часть 5).: 3 комментария

  1. Спасибо за инфу, очень доходчиво все расписано. Решил попробовать покомпилировать as с помощью опенсорсного сдк на маке. Все получается вот только в терминале ???? в основном вместо текста выводятся, не подскажите в чем может быть дело?

  2. Ну, тут извечная проблема с кодировкой))
    Есть вариант перенаправлять вывод результата команды mxmlc в файл, который можно будет открыть редактором понимающий соответствующую кодировку.
    Пример:
    mxmlc ./test.as >> ./result.txt

    Это только предположение, т.к. MacOs под рукой нет. Попробую на днях данную проблему воспроизвести в Debian, или Ubuntu.
    Отпишусь, если будут результаты.

  3. получилось у меня немного продвинуться, оказывается если в настройках терминала выставить кодировку п.у. кириллическая(mac os) тогда он правильно сообщения отображает. но хочется его всетаки утфу научить..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *