В чем разница между событиями onMouseUp / Down и onPress / Release во Flash? - PullRequest
3 голосов
/ 13 октября 2008

Во Flash, кажется, есть два набора событий щелчка мышью:

  • onMouseUp, onMouseDown
  • onPress, onRelease

Есть ли реальная разница между этими событиями? Я не могу сказать из документации, и я не заметил ничего в реальном использовании, но кажется странным иметь два разных набора имен для одинаковых основных событий. Я что-то пропустил? Есть ли разница между ними?

Уточнение: это код ActionScript 2, предназначенный для Flash 8.

Ответы [ 5 ]

5 голосов
/ 13 октября 2008

onMouseDown и onMouseUp - это общие события, которые все могут слушать через Mouse.addListener (). Они срабатывают независимо от того, где нажата мышь.

onPress и onRelease относятся к конкретному мувиклипу. Они срабатывают только в том случае, если мышь нажата или отпущена, когда она находится над этим мувиклипом. Также важно onReleaseOutside ... для случая, когда вы щелкаете мышью вниз по мувиклипу, затем перетаскиваете мышь наружу, затем отпускаете мышь. В этом случае не будет никакого события onRelease, только событие onReleaseOutside, поэтому, если вы не слушаете последнее, ваша программа будет думать, что кнопка мыши застряла.

4 голосов
/ 14 октября 2008

Press / Release - это события взаимодействия , а не события мыши. Если вы активируете кнопку или MC с помощью клавиатуры (нажав на нее и нажимая пробел), она вызовет событие Press, но не MouseDown. Аналогичным образом, если вы нажмете на отключенную кнопку, это вызовет событие MouseDown, но не нажатие (так как взаимодействие с кнопками не происходит).

1 голос
/ 13 октября 2008

Я нашел это, когда занимался поиском в вопросе:

http://www.gogoat.com/2006/07/27/onpress-vs-onmousedown/

Похоже, что события mouseUp / mouseDown будут срабатывать, даже если мышь находится за пределами фрагмента ролика, а onPress / Release автоматически проверяет, находится ли мышь внутри клипа перед обработкой. Я мог бы поклясться, что проверил это, но я только что проверил, поэтому не должен был.

1 голос
/ 13 октября 2008

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

Кроме того, MouseUp / Down может происходить где угодно и ничего не подразумевать. A Пресс / Релиз на конкретном элементе управления, следовательно, имеет большее значение.

0 голосов
/ 13 октября 2008

onPress и onRelease являются удержаниями из кода AS2, они были заменены onMouseDown и onMouseUp в AS3, о которых вы можете прочитать в AS2 Руководство по миграции .

...