28
Window.on mousemove = …
Endi biz oxirgi 2 ta misolni birlashtirishimiz mumkin.
Biz foydalanuvchi
sichqonchani tugmachasini bosganda uning koordinatasi paydo bo’lishini
xoxlaymiz. Misolning kodi quyidagi ko’rinishda bo’ladi:
1 chidan biz window ob’ektini MouseDown va MouseUp hodisasi haqida
sichqonchani qabul qilishga majbur qilamiz.
Window.CaptureEvents ( Event.MouseDown/Event.MouseUp ) ;
Ko’rib turganingizdek biz / (yoki) belgisidan window ob’ekti ko’rsatilgan
hodisalardan bir nechtasini qabul qilish kerak degan maqsadda foydalanamiz.
Ko’rsatilgan hodisalar joyga ega bo’lsa unda nima sodir bo’lishini quyidagi 2 ta
satr orqali tavsiflanadi.
Window.On MouseDown = StartDrag;
Window.On MouseUp = EndDrag;
Quyidagi satrda MouseMove hodisasi ro’y berib window ob’ekti
signal qabul
qilganda nima sodir bo’lishi aniq bo’lgan.
Window.On MouseMove = MoveIt;
Lekin to’xtang axir biz Event.MouseMove ni window.captureEvents ( ) da
aniqlamadikku! Bu shuni anglatadiki joriy hodisa window ob’ekti tomonidan
qamrab olinmaydi. Unda nimaga agar window ob’ekti
bu hodisa haqida hech
nimaga ega bo’lmasa, biz window ob’ektiga MoveIt ( ) funkstiyasini ko’rsatamiz!
Bu savolga javobni MouseDown hodisasi sodir bo’lgandan so’ng chaqiriladigan
StartDrag ( ) funksiyasida topishingiz mumkin:
function StartDrag (l) {
Window.CaptureEvents ( Event.MouseMove);
29
Bu shuni bildiradiki sichqoncha tugmachasi bosilgandan darrov window ob’ekti
MouseMove xodisasini qamrab oladi. Va agar MouseUp hodisasi sodir bo’lsa biz
MouseMove hodisasini to’xtatishimiz kerak. Bu EndDrag ( ) funksiyasida
ReleaseEvents ( ) usuli yordamida bajariladi.
MoveIt ( ) funksiyasi sichqonchani koordinatalarini xolatlar satriga yozadi. Endi
bizda Drag va Drop mexanizmini amalga oshiruvchi skriptning barcha elementlari
bor. Va biz endi ob’ektlarimizni ekranda chizishni boshlasak ham bo'ladi.