Показать сообщение отдельно
Старый 08.11.2015, 17:08
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 8  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
WaldeMar1321, все события с устройств ввода делятся на 2 части - это начало и конец.
Например, событие клавиатуры KeyboardEvent.KEY_DOWN - это событие начала нажатия, а
KeyboardEvent.KEY_UP - это отпускание клавиши. То, что при длительном нажатии клавиши он
посылает событие многократно - неправильно с точки зрения логики, но с этим ничего не сделаешь.
MouseEvent.MOUSE_DOWN же работает исключительно правильно с точки зрения логики, он отсылается один раз при нажатии левой кнопки мыши, и соответствующее событие ловится при отпускании -
MouseEvent.MOUSE_UP.

Представьте, какие трудности ждали бы программиста, если бы всё работало не так.
Нужно, допустим, при нажатии на кнопку у клипа запустить анимацию, а при отпускании мыши - останавливать.

Пишем
Код AS3:
var clip:MovieClip = new MovieClip();//допустим, это наш клип.
var button:Button = new Button(); //допустим, это наша кнопка.
 
button.addEventListener(MouseEvent.MOUSE_DOWN, function(e:Event):void
{
   clip.gotoAndPlay(1);
});
button.addEventListener(MouseEvent.MOUSE_UP, function(e:Event):void
{
   clip.gotoAndStop(1);
});
Тут всё будет работать как надо, но что если бы вместо этого MOUSE_DOWN посылал бы событие каждый кадр? Ничего бы не работало.
Логика этих событий такова, что есть MOUSE_DOWN - начало нажатия, и есть MOUSE_UP - конец нажатия, и всё, что между ними можно делать в обработчике ENTER_FRAME.
Есть TouchEvent.TOUCH_BEGIN, а есть TouchEvent.TOUCH_END, что вызывается при нажатии на экран на сенсорном экране, и при отжатии.
Есть KeyboardEvent.KEY_DOWN, а есть KeyboardEvent.KEY_UP.
__________________
There is no thing in this world that is not simple.