25 декабря 2010 г.

Action Script 3. Урок 2. События мыши и клавиатуры.

Привет всем! Это новый урок из цикла "Уроки Actionscipt 3 для начинающих". Сегодня мы продолжим  знакомство с событиями и новыми, не менее интересными, способами.



Урок 2. События  мыши и клавиатуры.

Часть 1. События мыши.

В прошлом уроке мы познакомились с событием  EnterFrame, однако в большинстве игр и приложений на флеш используется мышь в качестве управления теми или иными объектами.

1. Создадим новый документ и нарисуем какой-нибудь объект, например звездочку.
Преобразовываем в мувиклип и даем instance name star. Теперь создаем новый слой actions и открываем соответствующую панель редактирования кода на этом слое (F9).
2. Вписываем вот такую строчку
star.addEventListener(MouseEvent.CLICK, goF);

Здесь мы видим некоторые изменения в свойствах, а именно на месте события стоит MouseEvent - то есть событие мыши, а CLICK означает, что функция будет выполняться при клике мыши по объекту. Еще нужно обратить внимание, что слушатель событий обращен не к stage, a к объекту - то есть функция выполнится при клике по нашей звезде.
На месте CLICK  можно поставить другие константы событий, например MOUSE_DOWN или MOUSE_UP, то есть при нажатии и отпускании кнопки мыши над объектом соответственно.
Идем дальше - создаем саму функцию.
function goF(e:MouseEvent):void {

Обратим внимание на изменившуюся принадлежность функции - теперь она выполняется при MouseEvent, как мы и указывали в слушателе события. Теперь немного поиграемся со свойствами объекта:
star.x +=10;
star.alpha -= 0.1; // alpha, то есть показатель прозрачности объекта  вычисляется в диапазоне от 0 до 1.
star.width -= 10;  //Ширина
star.height -= 10; // Высота
}

Протестируем ролик. Как видно, теперь при каждом нажатии свойства объекта меняются, прозрачность, ширина и высота уменьшаются..
Итоговый код:
star.addEventListener(MouseEvent.CLICK, goF);
function goF(e:MouseEvent):void {
star.x+=10;
star.alpha-=0.1;
star.width-=10;
star.height-=10;
}

Часть 2. События клавиатуры.
Сейчас рассмотрим, как заставить функцию выполняться при нажатии какой-либо клавиши. Для этого немного изменим код.

stage.addEventListener(KeyboardEvent.KEY_DOWN, backF);
function backF(e:KeyboardEvent):void {
if (e.keyCode==32) {
star.x-=10;
star.alpha+=0.1;
star.width+=10;
star.height+=10;
}
}

Для того, чтобы задать событие функции как нажатие клавиши, необходимо в свойствах слушателя указать событие клавиатуры KeyboardEvent, а также в самом теле функции - там мы начинаем проверку нажатия через условный оператор if. У каждой клавиши на клавиатуре есть собственный уникальный код. Мы проверяем нажатие клавиши с кодом 32, которому соответствует клавиша пробел. Итак, если клавиша нажата, то выполняем следующие действия. Не забываем закрыть обе скобки - у оператора if и у самой функции.

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

Домашнее задание.

Есть движущийся объект - при нажатии на него мышкой или нажатии на клавишу Crtl - он ускоряется.

Решение предыдущего задания.

а).
stage.addEventListener(Event.ENTER_FRAME, goF);
function goF(e:Event):void {
box.x+=5;
box.y+=5;
}

б).
stage.addEventListener(Event.ENTER_FRAME, goF);
function goF(e:Event):void {
box.x-=5;
box.y-=5;
}




Итак, урок окончен, тем, кто его выполнил, спасибо :).

2 коммент.:

Rudolf комментирует...

Spasio Vam bolshoye,tolko vy v Runete smogli tochno peredat konkretnuyu infu ob sobytiyax(Mouse Keyboard).Xvala vam i procvetaniya!!!!!!!!!!

Rudolf комментирует...

Molodcy.Super.Spasibo za infu!!!Jelayu vashemu saitu procvetaniya i uspexov!!!

Отправить комментарий