2. После этого устанавливаем FlashDevelop и распаковываем Flex SDK в папку “…\FlashDevelop\Tools\flexsdk” (где “…\FlashDevelop\” – это папка, в которую Вы установили сам FlashDevelop).
3. Запускаем FlashDevelop и создаем новый AS3-проект, для этого в меню Project выбираем “New Project…” и в появившемся окне выбираем пункт “AS3 Project”, в поле “Name” задаем имя проекта (пусть это будет “HelloFlashDevelop”), выбираем местоположение папки проекта, жмем “OK”. Проект создан.
Окно создания проекта |
Менеджер проекта |
package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point } } }
В первой строке идет объявление пакета. Пакеты нужны для организации классов и отражают структуру папок, в которых они расположены. В качестве имен пакетов рекомендуется использование имен доменов, что гарантирует уникальность его имени и отсутствие конфликтов имен. Например, у Вас может быть класс Utils, расположенный в папке “ru/teormech/utils/”, тогда имя пакета будет ru.teormech.utils.
Так как при создании проекта, мы оставили поле Package пустым (см. первый скриншот), то пакет у нас безымянный:
package
{
{
Затем происходит импорт необходимых классов Sprite и Event:
import flash.display.Sprite;
import flash.events.Event;
import flash.events.Event;
Эти две строки нужны, чтобы компилятор “знал”, где искать эти классы.
Класс Sprite является базовым для любого приложения, т.к. он необходим чтобы наше приложение как-то отображалось на мониторе. Существует альтернатива в виде класса MovieClip, но его использование целесообразно при работе с Flash IDE.
Класс Event – это, как ясно из его названия, класс события. В нашем случае он нужен для реагирования на добавления приложения в список отображения.
Далее идет объявление класса Main с идентификатором доступа public, это означает, что этот класс будет доступен из любого места приложения:
public class HelloWorld extends Sprite
{
{
Наш класс является наследником (ключевое слово extends) класса Sprite, т.е. он будет обладать той же функциональностью, что и класс Sprite (например, можно будет его переместить на экране, отмасштабировать, нарисовать в нем что-либо и т.д.).
Заметьте, что имя класса совпадает с именем файла, в котором он находится.
Переходим далее, а далее мы видим конструктор класса – функцию, которая автоматически вызывается, когда мы создаем новый экземпляр класса (в случае с нашим главным классом, он будет создан при компиляции проекта). Имя конструктора в ActionScript должно совпадать с именем класса:
public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); }
Внутри конструктора происходит проверка на существование свойства stage. Если оно существует, то сразу вызывается метод init. Если свойство stage отсутствует, значит наш класс еще не был добавлен в список отображения и нам надо подождать этого события, для этого мы добавляем обработчик события Event.ADDED_TO_STAGE (что можно условно перевести как ДОБАВЛЕН_НА_СЦЕНУ):
addEventListener(Event.ADDED_TO_STAGE, init);
Когда данное событие все же происходит, то вызывается метод init (является вторым параметром метода addEventListener):
private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point }
Метод init имеет идентификатор доступа private, т.е. он доступен только из данного класса, и никакой другой класс не может к нему обратиться. На данный момент в этом методе происходит только удаление обработчика события Event.ADDED_TO_STAGE, т.к. он больше уже не понадобится, ведь наше приложение уже готово к работе:
removeEventListener(Event.ADDED_TO_STAGE, init);
Следующая строчка // entry point – комментарий. Комментарии нужны только разработчику (в них обычно описывают логику программы на человеческом языке) и игнорируются компилятором.
Добавим после этой строки в метод init следующий код (комментарии присутствуют лишь для разъяснения):
// Создание нового текстового поля var myText:TextField = new TextField(); // Задание текста в текстовом поле myText.text = “Hello FlashDevelop”; // Добавление текстового поля в список отображения addChild(myText);
Проверьте, появилась ли у Вас в коде строчка:
import flash.text.TextField;
Если нет, то допишите ее в начале файла (обычно FlashDevelop автоматически импортирует используемые классы):
import flash.display.Sprite; import flash.events.Event; import flash.text.TextField;
Теперь нажав на кнопку "Test Movie", мы запустим наш первый проект:
В появившейся флэшке должно отобразиться текстовое поле.
Если же ничего не получилось, то скачайте исходник к этому уроку и сравните его содержимое с тем, что получилось у Вас.
Я знаю, что данный урок не особенно оригинален или интересен, но это только начало. Если у Вас возникли какие-нибудь вопросы, то задавайте их в комментариях.
В качестве дополнительной справки рекомендую почитать следующие статьи:
- FlashDevelop: Установка и настройка
- Создание AS-3 приложения при помощи FlashDevelop
- Горячие клавишы во FlashDevelop’e
- Где спрятана библиотека FlashDevelop и как ей пользоваться?
- Некоторые возможности FlashDevelop
А также, если Вы только начинаете программировать на ActionScript, то найдите какую-нибудь книгу по нему, например:
"Колин Мук - Actionscript 3.0 для Flash. Подробное руководство". Найти ее в электронном виде не составит особого труда
Комментариев нет:
Отправить комментарий