• Авторизация


ActionScript,Урок1. События мыши 12-08-2011 01:39 к комментариям - к полной версии - понравилось!

Это цитата сообщения Natariel Оригинальное сообщение

ActionScript c нуля. Урок1. События мыши
 

События мыши

На основе 2-х примеров ты познакомишься с событиями мыши.

Пример1: При щелчке на прямоугольнике, он будет сдвигаться вправо. 

• Создай 2 слоя: 
[показать]

На рисунке обведена кнопка создания нового слоя. Переименовать слой можно, если щелкнуть по названию слоя 2 раза.



• На сцене создай прямоугольник. 
[показать]

• Чтобы прямоугольник можно было использовать в ActionScript, давай преобразуем его в символ.
Щелкни по прямоугольнику правой клавишей мыши – Преобразовать в символ илиConvert to symbol (а можно было просто нажать F8). В списке «Тип» выбери MovieClip – Фрагмент ролика.

[показать]

Отлично.

Теперь можно писать скрипт.
Скрипт будет размещаться на слое AS. 

• В первом кадре слоя AS щелкни правой и в меню выбери Action – Действия. Или можно просто выделить первый кадр слоя AS и нажать F9.

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

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

Есть правило, по которому можно описать событие:

1. Создать слушателя событий. 



CODE
addEventListener (MouseEvent.CLICK, moveObject);


Метод addEventListener() всегда создает слушателя событий. Слушатель событий будет проверять, не произошло ли событие в нашей сцене. 
В скобках задается тип события. В данном случае это событие мыши MouseEvent.CLICK – тоесть прямоугольник будет сдвигаться вправо при щелчке на нем. Есть и другие события, чуть позже вы с ними познакомитесь.
После запятой пишется имя функции, которая нам нужна, чтобы в дальнейшем выполнять сдвиг прямоугольника вправо. Имя функции может быть любым, но лучше имена давать осмысленно. Я решила назвать функцию – moveObject.

Слушатель добавлен, теперь нужно описать саму функцию:



CODE
function moveObject (event:MouseEvent):void {
x = x + 5;
}

Описывается функция moveObject. 
В скобках описывается тип события – MouseEvent. Тип должен совпадать с типом события, указанным в слушателе. 
В дальнейшем вы привыкните к такой записи, меняться будут только названия функций и типы событий. Все остальное будет оставаться таким же. Тоесть если пока не очень понятно, нужно просто запомнить, как это пишется.
В фигурных скобках указывается, что будет делать функция, когда произойдет событие. 
x = x + 5 - Запись означает, что объект сдвинется на 5 пикселей вправо по координате x.

Эту запись можно более коротким способом записать так:
x+=5;
Все. Вот полный код:



CODE
addEventListener (MouseEvent.CLICK, moveObject);

function moveObject (event:MouseEvent):void {
x += 5;
}


• Протестируй ролик – Ctrl+Enter. Если пощелкать по прямоугольнику, то он начнет двигаться вправо.



[показать]  primer1.swf ( 929байт ) Кол-во скачиваний: 47724


Пример2: При щелчке на прямоугольник – он будет двигаться вправо. При шелчке на окружность, она будет двигаться влево.

• На слой «Анимация» добавь еще один объект – окружность.

• Также преобразуй ее в MovieClip – Фрагмент ролика.

[показать]

• Протестируй ролик. Объекты двигаются вправо на 5 пикселей.



[показать]  primer2.swf ( 1.01к ) Кол-во скачиваний: 46801


Чтобы можно было создать такую анимацию,как мне хочется, в коде будет необходимо ссылаться на каждый объект отдельно. Поэтому давай дадим имена нашим символам. 

• Выдели прямоугольник и на панели свойств - Properties в поле Instance Name – имя экземпляра – впечатай object1:

[показать]

• Выдели окружность и дай ей имя экземпляра – object2

[показать]

• Теперь снова возвращаемся в первый кадр слоя AS и F9, чтобы открыть панель Действий.
Вот так будет выглядеть код:



CODE
addEventListener (MouseEvent.CLICK, moveObject);

function moveObject (event:MouseEvent):void {
object1.x += 5;
object2.x -= 5;
}


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



[показать]  primer3.swf ( 1.06к ) Кол-во скачиваний: 50072

Задача не выполнена  [показать] 


Чтобы получилось так, как надо, нам нужно 2 событие. Одно будет для прямоугольника. Другое для окружности. 



CODE
object1.addEventListener (MouseEvent.CLICK, moveObject1);

function moveObject1 (event:MouseEvent):void {
object1.x += 5;
}

object2.addEventListener (MouseEvent.CLICK, moveObject2);

function moveObject2 (event:MouseEvent):void {
object2.x -= 5;
}



Обратите внимание, что слушателя мы теперь регистрируем отдельно для каждого объекта 
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 предварительно надо будет разрешить выполнение двойного щелчка на объекте:



CODE
object1.doubleClickEnabled = true;
object2.doubleClickEnabled = true;
object1.addEventListener (MouseEvent.DOUBLE_CLICK, moveObject1);

function moveObject1 (event:MouseEvent):void {
object1.x += 5;
}

object2.addEventListener (MouseEvent.DOUBLE_CLICK, moveObject2);

function moveObject2 (event:MouseEvent):void {
object2.x -= 5;
}



[показать]  primer5.swf ( 1.1к ) Кол-во скачиваний: 51444


Пока это все.
Домашнее задание: 
1. Сделай так, чтобы при щелчке на прямоугольник, он двигался вверх, а не вправо.
2. Сделай так, чтобы прямоугольник двигался с шагом в 15 пикселей, а не 5.

Автор:  neon ka

Источник

 

Серия сообщений "Adobe Flash":
Часть 1 - ActionScript c нуля. Урок1. События мыши
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник ActionScript,Урок1. События мыши | aleksfes - Дневник aleksfes | Лента друзей aleksfes / Полная версия Добавить в друзья Страницы: раньше»