Урок 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 коммент.:
Spasio Vam bolshoye,tolko vy v Runete smogli tochno peredat konkretnuyu infu ob sobytiyax(Mouse Keyboard).Xvala vam i procvetaniya!!!!!!!!!!
Molodcy.Super.Spasibo za infu!!!Jelayu vashemu saitu procvetaniya i uspexov!!!
Отправить комментарий