ActionScript c нуля. Урок1. События мыши
События мыши
На основе 2-х примеров ты познакомишься с событиями мыши.
Пример1: При щелчке на прямоугольнике, он будет сдвигаться вправо.
• Создай 2 слоя:
[показать]
На рисунке обведена кнопка создания нового слоя. Переименовать слой можно, если щелкнуть по названию слоя 2 раза.
• На сцене создай прямоугольник.
[показать]
• Чтобы прямоугольник можно было использовать в ActionScript, давай преобразуем его в символ.
Щелкни по прямоугольнику правой клавишей мыши – Преобразовать в символ илиConvert to symbol (а можно было просто нажать F8). В списке «Тип» выбери MovieClip – Фрагмент ролика.
[показать]
Отлично.
Теперь можно писать скрипт.
Скрипт будет размещаться на слое AS.
• В первом кадре слоя AS щелкни правой и в меню выбери Action – Действия. Или можно просто выделить первый кадр слоя AS и нажать F9.
В первом уроке я хочу познакомить тебя с событиями. Например, если пользователь щелкает мышью, то происходит событие. Или, если пользователь нажимает клавишу Alt на клавиатуре, это тоже может являться событием. О событиях клавиатуры будет рассказано в следующих уроках.
В том примере, кокторый мы сейчас разбираем, щелчок на прямоугольник будет событием.
Есть правило, по которому можно описать событие:
1. Создать слушателя событий.
Метод addEventListener() всегда создает слушателя событий. Слушатель событий будет проверять, не произошло ли событие в нашей сцене.
В скобках задается тип события. В данном случае это событие мыши MouseEvent.CLICK – тоесть прямоугольник будет сдвигаться вправо при щелчке на нем. Есть и другие события, чуть позже вы с ними познакомитесь.
После запятой пишется имя функции, которая нам нужна, чтобы в дальнейшем выполнять сдвиг прямоугольника вправо. Имя функции может быть любым, но лучше имена давать осмысленно. Я решила назвать функцию – moveObject.
Слушатель добавлен, теперь нужно описать саму функцию:
Описывается функция moveObject.
В скобках описывается тип события – MouseEvent. Тип должен совпадать с типом события, указанным в слушателе.
В дальнейшем вы привыкните к такой записи, меняться будут только названия функций и типы событий. Все остальное будет оставаться таким же. Тоесть если пока не очень понятно, нужно просто запомнить, как это пишется.
В фигурных скобках указывается, что будет делать функция, когда произойдет событие.
x = x + 5 - Запись означает, что объект сдвинется на 5 пикселей вправо по координате x.
Эту запись можно более коротким способом записать так:
x+=5;
Все. Вот полный код:
• Протестируй ролик – Ctrl+Enter. Если пощелкать по прямоугольнику, то он начнет двигаться вправо.
[показать] primer1.swf ( 929байт ) Кол-во скачиваний: 47724
Пример2: При щелчке на прямоугольник – он будет двигаться вправо. При шелчке на окружность, она будет двигаться влево.
• На слой «Анимация» добавь еще один объект – окружность.
• Также преобразуй ее в MovieClip – Фрагмент ролика.
[показать]
• Протестируй ролик. Объекты двигаются вправо на 5 пикселей.
[показать] primer2.swf ( 1.01к ) Кол-во скачиваний: 46801
Чтобы можно было создать такую анимацию,как мне хочется, в коде будет необходимо ссылаться на каждый объект отдельно. Поэтому давай дадим имена нашим символам.
• Выдели прямоугольник и на панели свойств - Properties в поле Instance Name – имя экземпляра – впечатай object1:
[показать]
• Выдели окружность и дай ей имя экземпляра – object2
[показать]
• Теперь снова возвращаемся в первый кадр слоя AS и F9, чтобы открыть панель Действий.
Вот так будет выглядеть код:
Протестируй мувик. Теперь при щелчке на один из объектов прямоугольник сдвигается вправо, а окружность влево.
[показать] primer3.swf ( 1.06к ) Кол-во скачиваний: 50072
Задача не выполнена
[показать]
Чтобы получилось так, как надо, нам нужно 2 событие. Одно будет для прямоугольника. Другое для окружности.
Обратите внимание, что слушателя мы теперь регистрируем отдельно для каждого объекта
object1.addEventListener (MouseEvent.CLICK, moveObject1);
object2.addEventListener (MouseEvent.CLICK, moveObject2);
Протестируйте мувик.
[показать] prime4.swf ( 1.07к ) Кол-во скачиваний: 49647
Все получилось!!!!
Ну и на последок давай я тебе расскажу, какие бывают события мыши (более подробно смотри тут):
MouseEvent.CLICK – сделано нажатие и отпускание ЛКМ над рабочей областью;
MouseEvent.MOUSE_DOWN – сделано нажатие ЛКМ;
MouseEvent.MOUSE_UP – сделано отпускание ЛКМ;
MouseEvent.DOUBLE_CLICK – событие происходит после 2-го щелчка
MouseEvent.MOUSE_MOVE – событие происходит, если курсор перемещается над областью отображения;
MouseEvent.MOUSE_OVER – событие происходит, если указатель перемещается на объект. Чтобы событие произошло еще раз, курсор нужно поместить за пределы объекта, а потом снова навести его на объект.
MouseEvent.MOUSE_OUT – событие происходит, если указатель перемещается за пределы области объекта;
MouseEvent.MOUSE_WHEEL – событие происходит, если указатель расположен над рабочим объектом и пользователь крутит колесо;
Ты можешь поэксперементировать с типами событий, заменив в нашем коде событие MouseEvent.CLICK в слушателе и в функции на какое-либо другое.
Для события MouseEvent.DOUBLE_CLICK предварительно надо будет разрешить выполнение двойного щелчка на объекте:
[показать] primer5.swf ( 1.1к ) Кол-во скачиваний: 51444
Пока это все.
Домашнее задание:
1. Сделай так, чтобы при щелчке на прямоугольник, он двигался вверх, а не вправо.
2. Сделай так, чтобы прямоугольник двигался с шагом в 15 пикселей, а не 5.
Автор: neon ka
Серия сообщений "Adobe Flash":
Часть 1 - ActionScript c нуля. Урок1. События мыши