Паролингизни унутдингизми?
Login
Left, Right, Center Left, Center, Right Center, Left, Right



18-Dars JavaScript - Харакатланаётган объектларни курсатиш

§ Харакатланаётган объектларни курсатиш

Оддинги дарсларимизда биз кандай килиб каватлар ёрдамида объектларни жойлаштиришни яратишни курган эдик. Бу энди фойдаланувчи кайси каватдаги сичконча тугмаси билан туртганини аниклашимиз керак. Мисолни коди:
< html >
<head>
< script lauguage = “ JavaScript '' >
< ! - -
var drag Obj = new array ( );
var dx,dy;
Window.CaptureEvents ( Event.MouseDown/Event.MouseUp ) ;
Wihdow.On MouseDown = StartDrag;
Wihdow.On MouseUp = EndDrag;
Wihdow.On MouseMove = MoveIt;
function StartDrag (l) {
current Obj = which Obj (l);
Window.CaptureEvents ( Event.MouseMove);
}
function MoveIt (l) {
drag move Obj[current Obj].left = l.pagex – dx;
drag move Obj[current Obj].top = l.pagey – dy;
}
}
function EndDrag (l) {
currentObj null;
window.releaseEvents (Event.MouseMove);
}
function init ( ) {
drag Obj [0]=document.layers[layers0];
drag Obj [1]=document.layers[layers1];
drag Obj [2]=document.layers[layers2];
}
function which Obj (l) {
//
var.hit=null;
for (var i=0, i<drag Obj.length: i++ ) {
if ((drag Obj[i] left<l.pagex) &&
(drag Obj[i] left<drag Obj[i].clip.width l.pagex) &&
(drag Obj[i] top<l.pagex) &&
(drag Obj[i] top< drag Obj[i].clip.height l.pagex))
}
hit=i;
dx=l.pagex – drag Obj[i].left;
dy=l.pagey – drag Obj[i].top;
break;
}
}
return hit;
}
//-- >
</script>
</head>
body onload = “init ( )”
<layer name = “layer0” left=100 top=200 clip = “100,100” bgcolor = “0000ff”>
<font size = +1> object0 </font>
</layer>
<layer name = “layer1” left=300 top=200 clip = “100,100” bgcolor = “00ff00”>
<font size = +1> object1 </font>
</layer>
<layer name = “layer0” left=100 top=200 clip = “100,100” bgcolor = “ff0000”>
<font size = +1> object2 </font>
</layer>
</body>
</html>
HTML сахифамизнинг <body> тегида 3 та каватлар аникланганини куришимиз мумкин. Сахифа юклатилгандан сунг OnLoad ходисани ишлаш процедураси ёрдамида <body> тегида init ( ) функцияси чакирилади.
function init ( ) {
// “Жойлаштириладиган” каватлар
drag Obj [0]=document.layers[layers0];
drag Obj [1]=document.layers[layers1];
drag Obj [2]=document.layers[layers2];
}
Drag Obj массиви фойдаланувчи жойлаштирмокчи булган каватларни узининг ичига олади. Хар бир кават Drag Obj да бирор бир номерга эга. Уни биз кейинрок курамиз.
Сичконча билан богланган ходисани камраб олиш кодини (биз олдин хам ишлатган) яна ишлатганимизни куриш мумкин.
Window.CaptureEvents ( Event.MouseDown/Event.MouseUp ) ;
Wihdow.On MouseDown = StartDrag;
Wihdow.On MouseUp = EndDrag;
Wihdow.On MouseMove = MoveIt;
Биз Stand Drag функциясига куйидагини кушдик.
Current Obj = which Obj (l);
Which Obj (l) функцияси кайси объектга туртиш бажарилганини аниклайди. У мос кават номерини кайтаради. Агар хеч кайси кават белгиланмаган булса у null каватни кайтаради. Олинган киймат current Obj узгарувчисида сакланади. Бу шуни англатадики, жорий вактда биз жойлаштирмокчи булган каватнинг номерини current Obj дан олишимиз мумкин (агар хеч кайсини утказмокчи булмасак бу null каватда булади).
Which Obj функциясида сиз хар бир каватнинг left, top, width ва height хусусиятини текширишимиз мумкин. Ушбу кийматлар ёрдамида бир фойдаланувчининг кайси объектни тугмача билан туртганини текширишимиз мумкин.

 

Share