рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд┐рд╕реА рдЦреЗрд▓ рдореЗрдВ рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛) рдПрдХ рд░рд╛рдЬреНрдп рдорд╢реАрди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрдХреНрд╕рд░ рдмреЛрдЭрд┐рд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдордЭ рдореЗрдВ рдХрд╛рдлреА рдкреНрд░рдпрд╛рд╕ рдпрд╛ рдХрд╛рдЧрдЬ рдкрд░ рд╕реНрдХреЗрдЪрд┐рдВрдЧ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдкрд╛рд░реА рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдФрд░ рдорд╕реНрддрд┐рд╖реНрдХ рд╕рдВрд╕рд╛рдзрди рдмрдЪрд╛рддрд╛ рд╣реИред

рд╡рд┐рд╡рд░рдг рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛрд░рдЯрд╛рдЗрди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛
рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рдЫреЛрдЯреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмреБрд▓рд╛рдпрд╛ред
рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЗрдирдкреБрдЯ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЖрджрд┐рдо рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рднрд╛рд░реА рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдХреНрд╕рд░ рдФрдкрдЪрд╛рд░рд┐рдХ рдпрд╛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд░рдо рджрдмрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ WaitForKey (...) рдХрд░рддрд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд░рд╛рдЬреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд░реВрдк рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг:
* DragAndDrop = * draggedObject = MouseDown - * First * MouseUp * Forever * MouseMove * draggedObject
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реИ, рдПрдХ рдЕрдВрдд рд╣реИ, рдФрд░ рдПрдХ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╕рдВрдпреЛрдЬрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд░реНрд╕реНрдЯ рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░ рдХрдИ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдм рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрддрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП - рдЕрдирдВрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдореБрдЦреНрдп рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдирдВрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрджрд┐рдо рдШрдЯрдирд╛рдУрдВ (рдЬреИрд╕реЗ рдорд╛рдЙрд╕рдбрд╛рдЙрди, рдорд╛рдЙрд╕рдЕрдк, рдорд╛рдЙрд╕рдУрдо, ...) рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлреЙрд░реНрдо рдХреА рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ:
{ done: true|false, value: result value }
рдЖрдк рдпрд╣рд╛рдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
GitHub рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ .
js рдФрд░ рдпрд╣рд╛рдВ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдЙрджрд╛рд╣рд░рдг:
jsFiddle ред
рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
- рдХрдВрдкреНрдпреВрдЯрд░ рдЧреЗрдо - рддрд░реНрдХ рдФрд░ AI рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХрднреА-рдХрднреА рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рднреА рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
- рджреГрд╢реНрдпрдкрдЯрд▓ рдореЗрдВ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рджреМрд░рд╛) - рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдПрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдЗрдирдкреБрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рд░реА рд░рдЦреЗрдВ, рд╕рднреА рдХреЛрдб рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рдФрд░ рд▓рдЧрднрдЧ рдЫрджреНрдо рдХреЛрдб рдХреА рддрд░рд╣ рдкрдврд╝реЗрдВ
- рд╡рд┐рд╖рдп-рдЙрдиреНрдореБрдЦ рднрд╛рд╖рд╛ рдкрд╛рд░реНрд╕рд░ рдПрдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдХреЛрдб рд╣реИ, рдЗрдирдкреБрдЯ рдкрд░ "рдЖрдЧреЗ рджреЗрдЦрдиреЗ" рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдлреЛрдЯреЛ:
рдирд┐рдХ рдпрдВрдЧрд╕рди рд╕реАрд╕реА рдмрд╛рдп-рдПрд╕рдП 3.0 рдЕрд▓реНрдлрд╛ рд╕реНрдЯреЙрдХ рдЗрдореЗрдЬреЗрдЬ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░