§ Drag va Drop nima - O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti...

26
axlat qutisiga olib borasiz – drag va so’ng uni u yerga tashlaysiz – drop. Biz bu
erda amalga oshirmoqchi bo’lgan drag va drop mexanizmi Web saxifada
chegaralanadi.
Shuning
uchun
siz
HTML
caxifadagi
ob’ektlarni
kompyuteringizning kattik diski yoki boshqa xususiy harakatlarga keltirish uchun
bu yerda keltirilgan haddan foydalana olmaysiz. JavaScript +tili to’g’ridan to’g’ri
Drag va Drop mexanizmini qo’llab quvvatlamaydi. Bu bizda image ob’ekti uchun
drageable yoki biror bir xususiyatni belgilash imkoni yo’q degan ma’noni beradi.
Shuning uchun biz buning uchun zarur kodni o’zimiz yozishimiz kerak. Lekin bu
unchalik qiyin emas. Demak bizga nima kerak? Bizga ikki narsa kerak.
Birinchidan biz sichqoncha bilan bog’liq aniq xodisani aniqlashimiz kerak, ya’ni
qanday tushunishimiz kerak. So’ngra biz ekran bo’ylab ob’ektlarni qanday qilib
o’tkazishni o’ylashimiz kerak. Albatta biz ob’ektlarni yaratish va ularni ekran
bo’ylab joylashtirishni qavat singari yangi imkoniyatdan foydalangan holda
bajaramiz. Har bir ob’ekt o’zining qavati bilan namoyon bo’ladi.
JavaScript 1.2 da sichkoncha bilan ishlashdagi xodisalar.
Biz sichqoncha bilan ishlashda yuz beradigan xodisalardan qaysi birini
ishlatishimiz kerak? Bizda MouseDrag kabi hodisa yo’q lekin bu uni Mouse Dam
,Mouse Move va Mouse up hodisalarni qayta ishlab berishimiz mumkin. Javas ni
1.2 versiyasida hodisalarninig yangi modulidan foydalaniladi . Biz bularsiz ushbu
masalani echib bilmaymiz . Keling bu yangi modelning bir qancha muhim qismiga
yana bir ko’rib chiqaylik. Foydalanuvchi brauzer darchasining biror bir joyida
sichkoncha tugmasini bosadi. Bizning skript bu hodisa qaysi ob’ekt (ya’ni kavat)
bilan bog’liqligini va bu hodisani bajarish kerak. Bizga ushbu hodisa koordinata
nuqtalarini bilishimiz kerak. Java S 1.2 da ushbu nuqtalarni koordinatalarini ro’y
berishining saqlaydigan yangi Event ob’ekti tashkil qilingan. Hodisani qamrab
olinishi boshqa bir muhim momentni uzx ichiga oladi. Masalan agar foydalanuvchi
sichkoncha tugmachasini turtsa, u holda unga mos xodisa to’g’ridan-to’g’ri Button
ob’ektiga yuboriladi. Lekin bizning misolimizda bu xodisa Window ob’ektida
27
ishlatilishi kerak. Shuning uchun biz darcha ob’ektiga sichqoncha bilan bog’liq
hodisa haqidagi signalni qamrab olishga ruxsat beramiz. Bu navbatdagi misolda
namoyon bo’ladi. (Click xodisasida ) siz brauzer darchasining ixtiyoriy joyiga
sichqoncha bilan turtishingiz mumkin. Bunda darchada ushbu hodisa ro’y bergan
joyning koordinatasi haqidagi xabar darchasi namoyon bo’ladi.
Window.onClick = displayCords; satri shuni anglatadiki, click hodisasi sodir
bo’lganida nima sodir bo’ladi. Aniqroq qilib aytganda brauzerning click hodisasiga
reaksiyasi sifatida displayCoords ( ) funksiyasi chaqiriladi (dispayCoords dan
so’ng qavs qo’yish kerak emasligini e’tiborga oling). Uz navbatida dispayCoords
funksiyasi quyidagi ko’rinishda aniqlanadi:
Function dispayCoords (l) {
Alert (“x:”+l.page.x+ “y:”+l.page.y:);
Ko’rib turganingizday bu funksiya argumentga ega (uni l deb atadiq). Xaqiqatdan
esa bu Event ob’ekti bo’lib bu dispayCoords ( ) funksiyasiga ishlatilishiga beriladi.
Event ob’ekti pege x va page y kabi xususiyatlarga ega, ulardan hodisa sodir
bo’lgan joy nuqtasini koordinatalarini olish mumkin. Xabar darchasi esa faqatgina
shu qiymatni ko’rsatadi.