ActionScript 3 события мыши

Adobe Flash
Автор темы, Ефрейтор
Ефрейтор
Аватара
Adobe Flash
Автор темы, Ефрейтор
Ефрейтор
Сообщения: 17
Зарегистрирован: 9 апреля 2013
С нами: 10 лет 11 месяцев

#1 Adobe Flash » 17 ноября 2015, 21:20

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


ДАЛЕЕ
Создадим два слоя - Анимация и Скрипт

ActionScript 3 события мышиt_1.jpg
ActionScript 3 события мышиt_1.jpg (20.53 КБ) 2190 просмотров


На сцене слоя Анимация создадим треугольник и преобразуем его в символ щелкнув по нему ПКМ Преобразовать в символ... или просто нажать F8. Имя - треугольник Тип – Фрагмент ролика - OK

ActionScript 3 события мышиt_2.jpg
ActionScript 3 события мышиt_2.jpg (100.76 КБ) 2190 просмотров


Далее в первом кадре слоя Скрипт щелкните ПКМ и в меню выберите – Действия. Или можно просто выделить первый кадр слоя и нажать F9. И в открывшемся окне пишем код:

Код: Выделить всё

addEventListener (MouseEvent.CLICK, треугольник);

function треугольник (event:MouseEvent):void {
+= 5;
}


В данном примере, щелчок по треугольнику будет событием.
Есть правило, по которому можно описать событие:

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

Код: Выделить всё

addEventListener (MouseEvent.CLICK, moveObject); 


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

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

Код: Выделить всё

function треугольник (event:MouseEvent):void {
= x + 5;
}


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

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


ДАЛЕЕ
На слой Анимация добавим еще один объект – звезду и так же как и треугольник, преобразуем в символ. Чтобы можно было создать такую анимацию, как мне хочется, в коде будет необходимо ссылаться на каждый объект отдельно. Поэтому дадим имена нашим символам. Выделим треугольник и на панели свойств - в поле Назначить имя экземпляру – пишем - треуг

ActionScript 3 события мышиt_3.jpg


Аналогично выделим звезду и дадим ей имя экземпляра – звезд. Теперь снова возвращаемся в первый кадр слоя Скрипт и открыв панель Действия - F9. Редактируем код:

Код: Выделить всё

addEventListener (MouseEvent.CLICK, треугольник);

function треугольник (event:MouseEvent):void {
треуг.+= 5;
звезд.-= 5;
}


Протестировав наше творение - Ctrl+Enter. Увидим что при щелчке на один из объектов треугольник сдвигается вправо, а звезда влево.

Чтобы фигуры двигались независимо друг от друга. Создаем два события - одно для треугольника, другое для звезды.

Код: Выделить всё

треуг.addEventListener (MouseEvent.CLICK, треугольник);

function треугольник (event:MouseEvent):void {
треуг.+= 5;
}

звезд.addEventListener (MouseEvent.CLICK, звезда);

function звезда (event:MouseEvent):void {
звезд.-= 5;
}


Обратите внимание, что слушателя мы теперь регистрируем отдельно для каждого объекта

Код: Выделить всё

треуг.addEventListener (MouseEvent.CLICK, треугольник);
звезд.addEventListener (MouseEvent.CLICK, звезда);
Какие бывают события мыши

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

Код: Выделить всё

треуг.doubleClickEnabled = true;
звезд.doubleClickEnabled = true;
треуг.addEventListener (MouseEvent.DOUBLE_CLICK, треугольник);

function треугольник (event:MouseEvent):void {
треуг.+= 5;
}

звезд.addEventListener (MouseEvent.DOUBLE_CLICK, звезда);

function звезда (event:MouseEvent):void {
звезд.-= 5;
}

Так же можно посмотреть видеоурок События мыши № 9
Изображение


Вернуться в «Adobe Flash»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 3 гостя