ActionScript краткий обзор

         

Использование Actions panel


Actions panel позволяет создавать и редактировать скрипты для объектов и кадров двумя различными способами. Можно выбирать заранее определенные команды из списка команд (Toolbox list), перетаскивать их в правую часть панели и использовать кнопки на панели для удаления и перестановки команд. В Normal Mode (нормальный режим) можно писать команды, используя поля параметров (аргументов), которые запрашивают у вас правильные аргументы. В Expert Mode (экспертный режим) можно писать и редактировать команды прямо в текстовом поле, как в обычном текстовом редакторе.

Включение Actions panel:

Выберите Window > Actions.

Выбрав экземпляр кнопки или муви-клипа вы делаете Actions panel активной. Заголовок Actions panel изменяется на Object Actions, если вы выбрали муви-клип или кнопку или на Frame Actions panel, если выбран кадр.

Выбор режима редактирования:

1 При активной Actions panel щелкните на стрелке в правом верхнем углу панели. Откроется выпадающее меню.
2 Выберите Normal Mode или Expert Mode из меню.
Каждый скрипт поддерживает свой собственный режим. Например, вы можете редактировать скрипт в одном экземпляре кнопки в Normal Mode, а другой в Expert Mode. При переключении между этими кнопками будет переключаться и режим редактирования.
Более детальную информацию смотри Нормальный режим и Экспертный режим.



Использование внешних редакторов.


Экспертный режим дает вам больше возможностей редактирования ActionScript, вы можете редактировать скрипты вне Flash. Вы можете потом использовать команду include для добавления скриптов, созданных во внешнем редакторе, к скриптам во Flash.

Например, следующая команда импортирует файл скрипта:

#include "externalfile.as"

Текст скрипта заменяет команду include. Текстовый файл должен существовать в момент экспорта клипа.

Для добавления скрипта из внешнего редактора:

1 Перетащите команду include из Toolbox list в окно скриптов.
2 Введите путь к внешнему файлу.
Путь должен быть родительским по отношению к FLA файлу. Например, если myMovie.fla и externalfile.as лежат в одном каталоге, путь будет такой: externalfile.as. Если externalfile.as лежит в подкаталоге, который называется Scripts, то путь будет таким: scripts/externalfile.as.



Экспертный режим


В экспертном режиме вы создаете команды путем ввода ActionScript в текстовое поле в правой стороне панели или выбирая команды из Toolbox list слева. Вы редактируете команды, вводите параметры или удаляете команды прямо в текстовом поле, как в обычном текстовом редакторе.

Экспертный режим позволяет опытным пользователям редактировать скрипты с помощью текстового редактора, как скрипты на JavaScript или VBScript. Экспертный режим отличается от нормального режима в следующих моментах:

Выбор команд при помощи кнопки (+) вводит их в зону редактирования.
Поля параметров не появляются.
Из всех кнопок на панели работает только кнопка (+).
Кнопки со стрелками вверх и вниз неактивны.

Actions panel в экспертном режиме

 



Как выполняются скрипты


ActionScript следует логической структуре. Flash исполняет команды ActionScript начиная с первой и последовательно до последней, если ему не встретится оператор, переводящий исполнение куда-либо в другое место.

Некоторые команды, такие как if - условные переходы, do...while - циклы и команда return, переводят исполнение ActionScript куда-либо в другое место, а не на следующую команду.

Логическая структура команды if..else

Логическая структура команды do..while

Оператор if называется условным оператором или "логическим ветвлением", так как он управляет исполнением скрипта в зависимости от соблюдения некоторого условия. Например, следующий код проверяет условие - значение переменной number должно быть меньше или равно 10. Если проверка возвращает true (например, значение number равно 5), переменной alert присваивается соответствующее значение, которое можно вывести, в качестве сообщения пользователю:

if (number <= 10) { alert = "The number is less than or equal to 10"; }

Для создания более сложного условного оператора можно добавить оператор else, как показано в следующем примере. Если условие возвращает true (например значение number равно 3), то выполняется вторая строка, если false (например значение переменной number равно 117649) первый блок кода пропускается и выполняется второй, следующий после оператора else:

if (number <= 10) { alert = "The number is less than or equal to 10"; } else { alert = "The number is greater than 10"; }

За более детальной информацией обращайтесь Использование оператора "if".

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

i = 0; do { duplicateMovieClip ("myMovieClip", "newMovieClip" + i, i); newName = eval("newMovieClip" + i); setProperty(newName, _x, getProperty("myMovieClip", _x) + (i * 5)); i = i + 1; } while (i <= 5);

За более детальной информацией обращайтесь Повторение команд.



Написание скриптов на ActionScript


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

Для того, что бы изменить видимость муви-клипа:

1 Выберите Window > Common Libraries > Buttons, затем выберите Window > Common Libraries > Movie Clips. Разместите кнопку и муви-клип на сцене.
2 Выделите этот муви-клип и выберите Window > Panels > Instance Properties.
3 В поле Name введите testMC.
4 Выделите кнопку на сцене и выберите Window > Actions для того что бы открыть Actions panel.
5 На панели Object Actions щелкните на категории Actions, чтобы открыть ее.
6 Дважды щелкните на команде setProperty, чтобы добавить ее в список команд (Actions list).
7 Из выпадающего меню Property (свойства) выберите _visible (видимость).
8 В поле Target (цель) введите testMC.
9 В поле Value (значение) введите 0.
Код должен выглядеть примерно так:
on (release) { setProperty ("testMC", _visible, false); }
10 Выберите Control > Test Movie и нажмите на кнопку, чтобы увидеть как исчезнет муви-клип.

ActionScript - объектно-ориентированный скриптовый язык. Это означает, что команды влияют на объект тогда, когда происходит определенное событие. В данном скрипте событием является отпускание кнопки мыши, объект - муви-клип с именем testMC, команда - setProperty. Когда пользователь отпускает кнопку мыши над кнопкой на экране, происходит событие release и скрипт переключает свойство _visible объекта MC в состояние false, из-за чего объект становиться невидимым.

Вы можете использовать Actions panel для создания простых скриптов. Чтобы использовать все мощь ActionScript, важно понимать то, как язык работает, его концепцию, элементы, правила, которые язык использует для организации информации и создания интерактивных клипов.



Назначение команд кадрам


Чтобы заставить клип делать что-либо при достижении определенного кадра, вы назначаете команды кадру. Например, для того что бы сделать цикл на линейке между 10 и 20 кадрами, необходимо в кадр 20 поместить следующую команду:

gotoAndPlay (10);

Хорошим тоном является размещение команд в отдельном слое. Кадры содержащие команды помечаются маленькой буквой "a" на линейке.

Буква "a" в кадре обозначает кадр с командами.

После того, как команды назначены, используйте Control > Test Movie для тестирования работы клипа. Большинство команд не работает в режиме редактирования.

Следующие инструкции описывают, как назначить команды кадру в Actions panel в нормальном режиме. (Подробную информацию о назначении команд кнопкам или муви-клипам смотри Добавление команд или методов.)

Для назначения команд кадру:

1 Выберите кадр в линейке и выберите Window > Actions.
Если выбранный кадр не является ключевым, команды будут назначены предыдущему ключевому кадру. Если кадр не выбран или выбрано несколько кадров, Actions panel будет тусклой (недоступной).
2 Выберите Normal Mode из выпадающего меню в правом верхнем углу Actions panel.
3 Чтобы назначить команды сделайте одно из следующего:
Дважды щелкните на команде в Toolbox list в левой половине Actions panel чтобы добавить команду в список команд в правой половине Actions panel.
Перетащите команду из Toolbox list в список команд.
Нажмите кнопку (+) и выберите команду из выпадающего меню.
Используйте клавиши быстрого доступа для каждой команды, список которых есть в выпадающем меню.
В полях параметров в нижней части панели, выберите нужные параметры для команды.
4 Для назначения дополнительных команд, выберите другой ключевой кадр и повторите шаг 3.

Для тестирования::

Выберите Control > Test Movie.



Назначение команд объектам


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

При назначении команды кнопке, вы должны поместить команды внутри обработчика on(mouse event) и определить события мыши или клавиатуры, на которые кнопка будет реагировать. При назначении команды кнопке в нормальном режиме, обработчик on(mouse event) добавится автоматически.

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

Следующие инструкции описывают как добавить команды к объекту, используя нормальный режим.

После того, как вы добавили команды, используйте Control > Test Movie для тестирования работы клипа. Большинство команд не работает в режиме редактирования.

Для назначения команд кнопке или муви-клипу:

1 Выделите экземпляр кнопки или муви-клипу и выберите Window > Actions.
Если вы выделили не кнопку, муви-клип или кадр или выбрали сразу несколько объектов, то Actions panel будет тусклой (недоступной).
2 Выберите Normal Mode из выпадающего меню в правом верхнем углу Actions panel.
3 Чтобы добавить команды сделайте одно из следующего:
Дважды щелкните на команде в Toolbox list в левой половине Actions panel чтобы добавить команду в список команд в правой половине Actions panel.
Перетащите команду из Toolbox list в список команд.
Нажмите кнопку (+) и выберите команду из выпадающего меню.
Используйте клавиши быстрого доступа для каждой команды, список которых есть в выпадающем меню.

Выбор команд из Toolbox list в нормальном режиме редактирования.

 

4 В полях параметров в нижней части панели, выберите нужные параметры для команды.
Для разных команд нужны разные параметры. Для более детальной информации о необходимых параметрах для каждой команды, смотри Словарь ActionScript: Обзор. Для ввода пути муви-клипа в поле параметров, щелкните на кнопку Target Path в нижнем правом углу Actions panel. Для более детальной информацией, смотри Работа с муви-клипами:Обзор..
5 Повторите шаги 3 и 4 для назначения дополнительных команд, если это необходимо.

Для тестирования:

Выберите Control > Test Movie.



Нормальный режим


В нормальном режиме вы создаете скрипт путем выбора команд из списка (Toolbox list), находящемся с левой стороны панели. Список команд содержит следующие категории: Basic Actions (Базовые команды), Actions (Команды), Operators (Операторы), Functions (Функции), Properties (Свойства) и Objects (Объекты). Категория Basic Actions содержит простейшие команды Flash, доступна только в нормальном режиме. Выбранные команды отображаются в правой части панели, в Actions list. Вы можете добавлять, удалять или изменять порядок команд, а также вводить параметры (аргументы) команд в соответствующих полях внизу панели.

В нормальном режиме вы можете использовать управляющие кнопки Actions panel для удаления или изменения порядка команд. Эти кнопки особенно полезны для управлением скриптами, которые содержать несколько команд.

Actions panel в нормальном режиме.

Для выбора команды:

1 Щелкните на нужной категории, для показа команд этой категории.
2 Дважды щелкните на команде или перетащите ее в окно скриптов.

Для использования полей параметров:

1 Щелкните на кнопке параметров в нижнем правом углу панели для показа полей.
2 Выберите команду и введите новые значения в полях для изменения свойств.

Для ввода пути муви-клипа:

1 Щелкните на кнопке Target Path в нижнем правом углу панели для показа Insert Target Path (панель выбора пути).
2 Выберите муви-клип из списка.

Для перемещения команд вверх и вниз по списку:

1 Выберите команду в Actions list.
2 Щелкните по кнопке Up или Down Arrow.

Для удаления команды:

1 Выберите команду в Actions list.
2 Щелкните на кнопке удаления (-).

Для изменения параметров используемой команды:

1 Выберите команду в Actions list.
2 Введите новые параметры в поле параметров.

Для изменения размеров Toolbox или Actions list:

Перетяните вертикальную разделяющую полосу между Toolbox и Actions list.
Дважды щелкните по вертикальной разделяющей полосе для того, что бы свернуть Toolbox list, следующий двойной щелчок по полосе развернет Toolbox list.
Щелкните по кнопкам со стрелками влево или вправо на разделяющей полосе, чтобы свернуть или развернуть список.

Когда Toolbox list скрыт, вы все равно можете получить доступ к его элементам, путем нажатия на кнопку добавления (+) в верхнем левом углу Actions panel.



О подсвечивании ошибок


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

В нормальном режиме все несовместимые команды подсвечиваются сплошным желтым фоном в окне скриптов. Например, если для экспорта клипа установлена четвертая версия Flash Player'а, то команды ActionScript, поддерживаемые только пятой версией, будут подсвечены желтым цветом. Версия экспорта устанавливается в Publish Settings.

Все устаревшие команды подсвечиваются зеленым фоном. Это происходит в случае установления пятой версия Player'а для экспорта.

Для установки версии Flash Player'а при экспорте:

1 Выберите File > Publish Settings.
2 Нажмите на закладку Flash.
3 Выберите версию экспорта из выпадающего меню Version.

Примечание: Вы можете выключить подсветку синтаксиса.

Для включения подсветки несовместимых команд:

Выберите Show Deprecated Syntax из выпадающего меню Actions panel.

Полный список всех сообщений об ошибках смотри Таблица сообщений об ошибках.



Об объекте MovieClip


Предопределенные классы ActionScript называются objects (объектами). Каждый объект дает вам возможность получить доступ к определенному типу информации. Например, объект Date имеет методы (например, getFullYear,getMonth), позволяющие получать информацию от системных часов. Объект Sound имеет методы (например, setVolume, setPan), позволяющие контролировать звук в клипе. Объект MovieClip имеет методы, позволяющие управлять экземплярами муви-клипов (например play, stop, и getURL), получать и назначать информацию об их свойствах (например _alpha, _framesloaded, _visible).

Муви-клипы - наиболее важные объекты во Flash, так как у них есть хронометрические линейки (Timeline), действующие независимо друг от друга. Например, если главная линейка содержит только один кадр, а муви-клип в этом кадре содержит десять кадров, будет воспроизведен каждый кадр этого муви-клипа. Это позволяет экземплярам существовать как автономным объектам, которые могут взаимодействовать друг с другом.

Каждый экземпляр мувиклипа имеет свое уникальное имя (instance name), по которому можно к нему обращаться. Например, вы можете иметь множество экземпляров клипа на сцене (например, leftClip и rightClip) и хотите проиграть только один из них. Для команды, запускающей воспроизведение одного определенного экземпляра, необходимо использовать его имя, как это сделано в следующем примере:

leftClip.play();

Имя клипа также позволяет дублировать, удалять и перетаскивать муви-клипы во время воспроизведения. В следующем примере дублируется муви-клип с именем cartItem для раздачи карт:

onClipEvent(load) { do { duplicateMovieClip("cartItem", "cartItem" + i, i); i = i + 1; } while (i <= numberItemsPur); }

У муви-клипов есть свойства, значения которых можно устанавливать или считывать динамически при помощи ActionScript. Изменением и чтением этих свойств можно изменить вид клипа. Например, в следующем примере скрипт использует команду setProperty, для того что бы установить прозрачность муви-клипа с именем navigationBar в значение 10:

setProperty("navigationBar", _alpha, 10);

За более детальной информацией об предопределенных типах объектов смотри Использование предопределенных объектов.



Об объектно-ориентированном программировании


В объектно-ориентированном программировании информация организуется путем ее объединения в группы, называемые classes (классы). Можно создать множество экземпляров класса, которые называются objects (объекты). Вы можете использовать встроенные классы ActionScript или создавать свои.

При создании класса, вы устанавливаете все properties (свойства, характеристики) и methods (методы, поведение) каждого созданного объекта точно также как и у каждого реального объекта. Например, человек имеет такие свойства как: пол, рост и цвет волос, такие методы как: говорить, ходить и бросать. В этом примере "человек" это класс, а каждый индивидуум - объект или instance (экземпляр) этого класса.

Объекты в ActionScript могут содержать данные или они могут быть графически представлены на сцене в качестве муви-клипов. Все муви-клипы являются экземплярами предустановленного класса MovieClip. Каждый муви-клип содержит все свойства (например _height, _rotation, _totalframes) и методы (например gotoAndPlay, loadMovie, startDrag) класса MovieClip.

Чтобы определить класс, вы должны создать специальную функцию, называемую constructor function (конструктор класса), предустановленные классы уже имеют конструкторы. Например, если вы хотите иметь информацию об велосипедисте в вашем клипе, можете создать конструктор класса Biker, со свойствами time и distance и методом rate, который сообщает как быстро движется велосипедист:

function Biker(t, d) { this.time = t; this.distance = d; } function Speed() { return this.time / this.distance; } Biker.prototype.rate = Speed;

Затем можете копировать экземпляры класса. Следующий код создает экземпляры объекта Biker, которые называются emma и hamish.

emma = new Biker(30, 5); hamish = new Biker(40, 5);

Экземпляры также могут взаимодействовать друг с другом. Для объекта Biker вы можете создать метод shove, который позволит велосипедистам толкать друг друга. (Экземпляр emma может вызвать метод shove если hamish подъедет слишком близко.) Чтобы передать информацию методу, используются параметры (аргументы): например, метод shove может иметь параметры who и howFar. В следующем примере emma толкает hamish на 10 пикселей:

emma.shove(hamish, 10);

В объектно-ориентированном программировании классы могут получать свойства и методы один от другого в определенном порядке. Этот порядок называется inheritance (наследование). Вы можете использовать наследование для расширения или переопределения свойств и методов класса. Класс, который наследуется от другого класса называется subclass (подкласс, потомок). Класс, который дает свойства и методы называется superclass (надкласс, родитель). Класс может быть одновременно и потомком и родителем.



Переключение между режимами редактирования


Изменение режима редактирования во время написания скрипта может изменить его форматирование. Поэтому лучше всего использовать один режим на каждый скрипт.

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

Переключение из экспертного режима в нормальный немного сложнее:

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

Для изменения режима редактирования:

Выберите Normal Mode или Expert Mode из выпадающего меню в правом верхнем углу панели. Галочка указывает на текущий режим.

Для установки режима по умолчанию:

1 Выберите Edit > Preferences.
2 Выберите General tab
3 В разделе Actions Panel, выберите Normal Mode или Expert Mode из выпадающего меню.



Планирование и отладка скриптов


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

Перед тем как начать написание скрипта, сформулируйте свою цель и осознайте, чего вы хотите. Это позволит сэкономить время в вашей последующей работе над клипом. Начинайте работу с записи того, какие события должны происходить в клипе, например:

Я хочу создать весь мой сайт используя Flash.
У посетителей сайта будет узнаваться их имя, чтобы использовать его в сообщениях по всему сайту.
Этот сайт будет иметь "таскаемую" навигационную панель с кнопками, переключающими разные разделы сайта.
При нажатии на кнопку, в середине сцены будет проявляться новый раздел сайта.
Один из разделов будет иметь контактную форму для ввода имя пользователя.

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

Чтобы заставить скрипты работать так, как вам хочется, может потребоваться некоторое время &#151 часто большее чем один цикл написания, тестирования и отладки. Лучший подход - начать с простого и тестировать свою работу как можно чаще. Когда вы завершили одну часть вашей работы, выберите Save As, чтобы сохранить версию файла (например myMove01.fla) и приступайте к написанию следующей части. Такой подход облегчит поиск возможных ошибок и даст вам навык в написании более сложных скриптов.



Подсветка и проверка синтаксиса


Система подсветки синтаксиса окрашивает определенные элементы ActionScript в разные цвета. Это помогает предотвращать синтаксические ошибки, такие как ошибки с заглавными буквами в ключевых словах. Например, если ключевое слово typeof написано как typeOf, то оно не будет подсвечено синим цветом и благодаря этому вы сможете распознать ошибку. Когда подсветка синтаксиса включена, текст подсвечивается следующим образом:

Ключевые слова и предопределенный идентификаторы (например gotoAndStop, play и stop) подсвечиваются синим цветом.
Свойства подсвечиваются зеленым цветом.
Комментарии подсвечиваются фиолетовым цветом.
Строки, окруженные кавычками, подсвечиваются серым цветом.

Для включения и выключения подсветки:

Выберите Colored Syntax из выпадающего меню в правом верхнем углу Actions panel. Маркер показывает, что эта опция включена. Все скрипты будут подсвечены.

Неплохой идеей является проверка синтаксиса скрипта на наличие ошибок перед экспортом клипа. Ошибки сообщаются в Output window. Вы можете экспортировать клипы, в которых есть ошибки. Однако будете предупреждены о том, что скрипты с ошибками при этом не будут экспортированы.

Для проверки текущего скрипта на наличие ошибок:

Выберите Check Syntax из выпадающего меню в правом верхнем углу Actions panel.



Понимание ActionScript: Обзор


ActionScript, скриптовый Flash-язык, добавляет интерактивность к клипу. Вы можете так настроить свой клип, что в зависимости от действий пользователя, таких как щелчки мышью или нажатия кнопок на клавиатуре, скрипт будет давать указания клипу, какие действия выполнять. Например, можно написать скрипт, который будет указывать Flash'у загружать разные клипы во Flash Player, в зависимости от того, какие навигационные кнопки выбрал пользователь.

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

Эта глава - введение в ActionScript, как в объектно-ориентированный скриптовый язык и предоставит вам обзор терминов ActionScript. Здесь также разъяснены простейшие скрипты, что бы вы могли представить себе общую картину.

Эта глава также познакомит вас с Actions-панелью, в которой вы можете создавать свои скрипты, выбирая элементы ActionScript или набирая текст в окне скриптов (Script window).



Разбор простого скрипта


В этом простом клипе, при переносе мухи в ловушку, муха чернеет и падает вниз ловушки. Клип имеет продолжительность в один кадр и содержит два объекта: мувик с мухой и мувик с ловушкой. Каждый из мувиков также содержит по одному кадру.

Муха и ловушка находятся на сцене в первом кадре

В этом клипе всего один скрипт. Он назначен клипу с именем bug, см. в Object Actions panel:

Object Actions panel со скриптом, назначенным клипу bug

Так как оба объекта являются мувиками, можно назначить каждому из них уникальное имя в Instance panel и управлять ими при помощи ActionScript. Имя мувика с мухой будет bug, с ловушкой - zapper. В скрипте, к мувику с мухой обращаются как к this, так как скрипт назначен непосредственно этому клипу, а зарезервированное слово this адресует к объекту, в котором вызывается скрипт.

В скрипте находятся два обработчика onClipEvent с двумя разными событиями: load и enterFrame. Команды, в блоке onClipEvent(load) выполняются только один раз при загрузке клипа. Команды в блоке onClipEvent(enterFrame) выполняются каждый раз, когда player входит в этот кадр. Так как у нас клип состоит только из одного кадра, то эти команды повторяются постоянно. Следующие команды происходят при наступлении этих событий.

onClipEvent(load). Команда startDrag делает клип с мухой перетаскиваемым. Создается экземпляр объекта Color при помощи оператора new и конструктора Color. Этому экземпляру назначается имя zap:

onClipEvent (load) { startDrag (this, true); zap = new Color(this); }

onClipEvent(enterFrame). Условный оператор if использует команду hitTest для проверки соприкосновения клипа с мухой (this) и клипа с ловушкой (_root.zapper). Возможны два результата проверки, true или false:

onClipEvent (enterFrame) { if (this.hitTest(_root.zapper)) { zap.setRGB(0); setProperty (_target, _y, _y+50); setProperty (_root.zapper, _alpha, 50); stopDrag (); } else { setProperty (_root.zapper, _alpha, 100); } }

Если команда hitTest возвращает true, объект zap, созданный в блоке load, используется для перекрашивания мухи в черный цвет. К свойству мухи (_y) прибавляется 50, таким образом кажется, что муха упала (переместилась на 50 пикселов вниз). Прозрачность ловушки (_alpha) становиться равной 50, кажется что ловушка мигнула. Команда stopDrag отключает перетаскивание клипа с мухой.

Если команда hitTest возвращает false, выполняются команды в блоке else. При этом значение _alpha ловушки становится равным начальному значению (100), а если оно до этого было равно 50, то покажется, что ловушка мигнула. Эти действия произойдут после того, как муха будет поймана и упадет.



Терминология ActionScript


Как и любой скриптовый язык, ActionScript использует специфическую терминологию, соответствующую специфическим правилам синтаксиса. Следующий список предоставляет введение в важнейшие термины ActionScript. Эти термины и их синтаксис более детально рассматриваются в Написание скриптов на ActionScript: Обзор.

Actions (Команды) - операторы, которые дают инструкции клипу, что ему делать во время воспроизведения. Например, gotoAndStop переводит воспроизведение на определенный кадр или метку.

Arguments (Аргументы), также называются параметрами, позволяют передавать значения функциям. Например, следующая функция welcome, использует два значения, которые получает с помощью аргументов firstName и hobby:

function welcome(firstName, hobby) { welcomeText = "Hello, " + firstName + "I see you enjoy " + hobby; }

Classes (Классы) - типы данных, которые можно создавать для определения новых типов объектов. Для определения класса объектов, создаются функции-конструкторы.

Constants (Константы) - неизменяемые элементы. Например, константа TAB всегда имеет определенное значение. Константы полезны для сравнения значений.

Constructors (Конструкторы) - функции, используемые для определения свойств и методов класса. Например, следующий код создает новый класс Circle с помощью конструктора Circle:

function Circle(x, y, radius){ this.x = x; this.y = y; this.radius = radius; }

Data types (Типы данных) - набор значений и операций, могущих производиться над ними. Строки, числа, true и false (Булевые) значения, объекты и муви-клипы - типы данных ActionScript. Для более детальной информации об этих элемента языка смотри О типах данных.

Events (События) - действия, происходящие во время воспроизведения клипа. Например, различные события происходят при загрузке клипа, когда плеер воспроизводит кадр, пользователь щелкает на кнопке в муви-клипе или нажимает кнопку на клавиатуре.

Expressions (Выражения) - любые части операторов, имеющих значения. Например, 2 + 2 это выражение.




Functions (Функции) блоки многократно используемого кода, которым могут быть переданы аргументы (параметры) и которые могут вернуть значения. Например, функции getProperty передаются имя свойства и имя клипа, а возвращается значение этого свойства. Функция getVersion возвращает версию Flash Player, воспроизводящего клип.

Handlers - специальные команды, управляющие событиями, такими как mouseDown или load. Например, on (onMouseEvent) и onClipEvent - ActionScript handlers.

Identifiers (Идентификаторы) - имена, используемые для обозначения переменных, свойств, объектов, функций и методов. Первый символ должен быть буквой, знаком подчеркивания (_) или знаком доллара ($). Любой следующий символ должен быть буквой, знаком подчеркивания (_), цифрой или знаком доллара ($). Например, имя переменной firstName.

Instances (Экземпляры) - объекты, принадлежащие к определенному классу. Каждый экземпляр класса содержит все свойства и методы этого класса. Все муви-клипы - экземпляры со свойствами (например, _alpha и _visible) и методами (например, gotoAndPlay и getURL) класса MovieClip.

Instance names - уникальные имена, позволяющие указывать экземпляр муви-клип в скриптах. Например, исходный символ в Библиотеке может быть назван counter, а его два экземпляра могут иметь имена scorePlayer1 и scorePlayer2. Следующий код назначает переменной score внутри каждого экземпляра при помощи instance names:

_root.scorePlayer1.score += 1 _root.scorePlayer2.score -= 1

Keywords (Ключевые слова) - зарезервированные слова, имеющие специальное значения. Например, var - ключевое слово, используемое для объявления локальных переменных.

Methods (Методы) - функции, присущие объекту. После того, как функция определена, она может быть вызвана, как метод этого объекта. Например, в следующем коде clear становиться методом объекта controller.

function Reset(){ x_pos = 0; x_pos = 0; } controller.clear = Reset; controller.clear();

Objects (Объекты) - коллекции свойств, каждый из которых имеет свое имя и значение. Объекты обеспечивают доступ к различным типам данных. Например, предопределенный объект Date предоставляет информацию от системных часов.



Operators (Операторы) - вычисляют новые значения из одного или более значений. Например, оператор сложения (+) складывает два или более значения для получения нового значения.

Target paths (Пути) иерархические адреса имен экземпляров муви-клипов, переменных, объектов в клипе. Вы можете назвать муви-клип в его Instance panel. Главная линейка всегда имеет имя _root. Можно использовать путь для указания команды муви-клипа, для получения или назначения переменных. Например, следующий оператор - путь к переменной volume которая находится внутри муви-клипа stereoControl:

_root.stereoControl.volume

Properties (Свойства) - атрибуты, определяющие объект. Например, _visible - свойство всех клипов, которое определят видим клип или нет.

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

x = 5; name = "Lolo"; customer.address = "66 7th Street"; c = new Color(mcinstanceName);


Управление во время работы ActionScript


При написании скрипта вы используете Actions panel. Actions panel позволяет назначить скрипт кадру на главной линейке или линейке любого муви-клипа, а также любой кнопке или муви-клипу на сцене.

Flash выполняет команды в разное время, в зависимости от их местонахождения (присоединения):

Команды назначенные кадру выполняются когда воспроизведение доходит до этого кадра.
Команды назначенные кнопкам, включаются в команду-обработчик on.
Команды назначенные муви-клипу, включаются в команду-обработчик onClipEvent.

Команды onClipEvent и on называются обработчиками, так как они "обрабатывают" события. (События - это то что происходит на сцене, например движение мыши, нажатие кнопки на клавиатуре, загрузка мувиклипа). Команды муви-клипов и кнопок выполняются тогда, когда случаются события, описанные в обработчике. Вы можете присоединять более одного обработчика к объекту, если хотите чтобы команды выполнялись при различных событиях. Для более детальной информации смотри Главу 3 Создание интерактивности при помощи ActionScript: Обзор.

Мувиклипу на сцене назначено несколько обработчиков onClipEvent.



Выбор опций Actions panel


Actions panel позволяет работать со скриптами различными путями. Вы можете изменить размер шрифта в окне скриптов, можете импортировать текстовый файл, содержащий ActionScript в Actions panel и экспортировать команды как текстовый файл, искать и заменять фрагменты текста в скрипте, использовать подсветку синтаксиса для облегчения чтения скрипта и обнаружения ошибок. Actions panel предупреждающе подсвечивает ошибки и несовместимости с Flash Player'ом. Также подсвечиваются нерекомендованные или менее предпочтительные команды.

Эти опции Actions panel доступны как в нормальном, так и в экспертном режимах редактирования, если это специально не оговорено.

Для изменения размера шрифта в окне скриптов:

1 Из выпадающего меню в правом верхнем углу панели выберите Font Size (размер шрифта).
2 Выберите Small (маленький), Normal (нормальный) или Large (большой).

Для импорта текстового файла содержащего ActionScript:

1 Из выпадающего меню в правом верхнем углу панели выберите Import from File (импорт из файла).
2 Выберите текстовый файл, содержащий ActionScript и нажмите Open.

Примечание: Скрипты с синтаксическими ошибками можно импортировать только в экспертном режиме. В нормальном режиме вы получите сообщение об ошибке.

Для экспорта команд в текстовый файл:

1 Из выпадающего меню в правом верхнем углу панели выберите Export as File (экспорт в файл).
2 Выберите место расположения файла и нажмите Save.

Для печати команд:

1 Из выпадающего меню в правом верхнем углу панели выберите Print.
Появится диалоговое окно печати.
2 Выберите опции и нажмите Print.

Примечание: Напечатанный файл не будет содержать информацию об оригинальном Flash-файле. Можно включить эту информацию в команду comment .

Для поиска текста в скрипте, выберите из выпадающего меню в правом верхнем углу панели:

Goto Line для перехода к определенной строке скрипта.
Find для поиска текста.
Find Again для дальнейшего поиска.
Replace для поиска и замены текста.
В экспертном режиме Replace сканирует все тело скрипта. В нормальном режиме Replace ищет и заменяет только значения в полях параметров. Например, вы не сможете заменить все команды gotoAndPlay на gotoAndStop в нормальном режиме.

Примечание: Используйте Find и Replace для поиска в текущей Actions list. Для поиска во всех скриптах клипа, используйте Movie Explorer. Для более детальной информацией смотри Flash Help.