38. [howto] Drag&Drop Part1. Перетаскивание объектов

howto – Серия статей, в которых мы будем разбирать как делать эффекты во флеше и другие интересные полезности. Посмотреть все уроки серии: http://flashpress.ru/blog/category/howto/
Серия статей на тему Drag&Drop:
  1. Drag&Drop Part1. Перетаскивание объектов
  2. Drag&Drop Part2. Создаем игровой магазин с функцией перетаскивания купленных предметов (скоро)
  3. Drag&Drop Part3. Эффект резины при таскании (скоро)
  4. Drag&Drop Part4. Библиотека FPDragManager (скоро)

Drag&Drop – это механизм который буквально означает Потащил-и-Бросил. Очень часто такой механизм используется в играх, например когда вам необходимо реализовать перетаскивание предметов из магазина в рюкзак. Конечно можно сделать кнопку перенести, но таскание как то приятнее что ли:) Создается ощущение непосредственного участия в происходящем, а это дорогого стоит, особенно в играх. Хватит мечтать, давайте приступим к делу.

В этом уроке мы разберем общие принципы механизма Drag&Drop, а в следующей части создадим условный игровой магазин с функцией таскания предметов из магазина в рюкзак. Написать код реализовывающий механизм Drag-and-Drop можно с помощью стандартных методов startDrag/stopDrag, а так же с помощью своей собственной реализацией используя событие MouseEvent.MOUSE_MOVE. В этой статье мы поговорим о методах startDrag/stopDrag, а в последующих разберем как можно создать эффект “резины” при перетаскивании.

Если в кратце, то механизм таскания можно определить в три шага:

  • Нажатие мышкой
  • Таскание
  • Отпускание мыши

Факт нажатия мышкой определяем с помощью события MouseEvent.MOUSE_DOWN. Имейте ввиду что слушать надо именно событие MouseEvent.MOUSE_DOWN а не MouseEvent.CLICK. Потому что CLICK срабатывает когда вы нажимаете и отпускаете кнопку мыши. А нам нужно поймать момент нажатия без отпускания. После наступления события MouseEvent.MOUSE_DOWN вызываем метод startDrag, и слушаем событие MouseEvent.MOUSE_MOVE для того что бы определять в каждый момент времени где находится объект который мы таскаем. Для отлова момент отпускания мыши слушаем событие MouseEvent.MOUSE_UP, и в обработчике этого события вызываем метод stopDrag:

Здесь должна быть флешка. Установите Flash Player

Используя исходник как есть – не забудьте подключить SWC библиотеку FPTween.
Скачать исходники можно здесь

Да прeбудет с вами Flash.
Serious Sam
Эту статью прочитали 3049 раз

Возникли вопросы по статье? Не стесняйтесь спрашивать в комментариях или любым другим способом на странице Контакты .

Присоединяйтесь к нам в социальных сетях: ВКонтакте , Twitter и Facebook
Понравилась статья? Буду благодарен если вы поделитесь ссылкой с друзьями:


Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress: