Trageți - drop part1

O serie de articole despre Drag # 038; Drop.
  1. Trageți # 038; Drop Part1. Trageți și plasați obiecte
  2. Drag # 038; Drop Part2. Creați un magazin de jocuri cu funcția de a trage articolele cumpărate (în curând)
  3. Trageți # 038; Drop Part3. Efectul cauciucului atunci când trageți (în curând)
  4. Trageți # 038; Drop Part4. FPDragManager Library (în curând)

Dragul # 038; Drop este un mecanism care înseamnă literalmente Drag-and-Drop. Foarte des, acest mecanism este folosit în jocuri, de exemplu, când trebuie să implementați elemente de tragere din magazin într-un rucsac. Desigur, puteți face butonul să se miște, dar tragerea este mai plăcută decât asta :) Există un sentiment de participare directă la ceea ce se întâmplă și merită, mai ales în jocuri. Nu mai visezi, să trecem la afaceri.

În această lecție vom discuta despre principiile generale ale mecanismului Drag # 038; Drop și în partea următoare vom crea un magazin de jocuri condiționate cu funcția de a trage obiecte din magazin în rucsac. Puteți scrie codul folosind implementarea Drag-and-Drop folosind metodele standard startDrag / stopDrag, precum și utilizând propria implementare utilizând evenimentul MouseEvent.MOUSE_MOVE. În acest articol, vom vorbi despre metodele startDrag / stopDrag, iar în cele ce urmează vă vom explica cum puteți crea un efect "cauciuc" atunci când trageți.

Dacă pe scurt, mecanismul de manipulare poate fi definit în trei etape:

  • Dacă faceți clic pe mouse-ul
  • trăgând
  • Descărcarea mouse-ului

Faptul de a face clic cu mouse-ul este determinat folosind evenimentul MouseEvent.MOUSE_DOWN. Rețineți că trebuie să ascultați evenimentul MouseEvent.MOUSE_DOWN și nu MouseEvent.CLICK. Deoarece CLICK este declanșat când apăsați și eliberați butonul mouse-ului. Și trebuie să prindem momentul presării fără eliberare. După ce apare evenimentul MouseEvent.MOUSE_DOWN, suntem numiți metoda startDrag. și ascultați evenimentul MouseEvent.MOUSE_MOVE pentru a determina în fiecare punct în timp unde este localizat obiectul pe care îl tragem. Pentru a capta momentul în care mouse-ul este eliberat, ascultați evenimentul MouseEvent.MOUSE_UP. iar în evenimentul handler al acestui eveniment numim metoda stopDrag: