Глава 5. АВТОМАТИЗАЦИЯ
ВЗАИМОДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЯ С
WEB-СТРАНИЦАМИ
Технология
перемещения объекта по экрану
При попадании курсора мыши на объект можно определить координаты этого курсора, связать с объектом, а затем, перемещая курсор (тащить по экрану объект). В таком процессе участвуют два события. Первое событие – mousedown (нажатие кнопки мыши), второе - mousemove (перемещение мыши). Эти события мыши в программе обрабатываются с помощью методов OnMouseDown и OnMouseMove, которые, в свою очередь, получают сведения о координатах курсора мыши на экране из объекта Event, который принадлежит общему объекту Window. Если запустить ПРИМЕР14, то будет понятна задача. Внешний вид Web-страницы представлен на рис. 31.
Рис. 31. Web-страница с объектом в виде рисунка, который можно перемещать по экрану
Программные коды на HTML и программа сценария для перемещения объекта представлены на листинге 16.
Листинг 16.
<HTML>
<HEAD>
<TITLE>Перемещение
объекта</TITLE>
<STYLE type="text/css">
img {position: absolute;}
#dr
{font-family:Arial;
Size:12pt; Color:Navy}
#za
{font-size:12pt}
</STYLE>
<SCRIPT language="vbscript">
Dim sf
Dim sf_left
Dim sf_top
Dim im
Sub window_onload
sf_left=sf.offsetLeft
sf_top=sf.offsetTop
End Sub
Sub document_onmousedown()
Set im = window.event.srcElement
End Sub
Sub document_onmousemove()
Dim ob_left,
ob_top
if (window.event.button = 1) then
ob_left
= window.event.x
ob_top
= window.event.y
im.style.pixelLeft
= ob_left - (im.offsetWidth/2)
im.style.pixelTop
= ob_top - (im.offsetHeight/2)
window.event.returnValue
= false
End if
End Sub
</SCRIPT>
</HEAD>
<BODY>
<P Align=center id=dr>
Возьмите
мышкой объект и переместите его<BR>
<img src="Рисунки/книга3.gif" name="R1">
</P>
</BODY>
</HTML>
В приведенной программе выше, созданы три процедуры, в которых переменными являются sf – описание объекта в виде рисунка, sf_left – координата объекта относительно левой стороны экрана, sf_top – координата объекта относительно верха экрана, ob_left, ob_top и im – описание объекта, соединенного с указателем курсора. Первая процедура (Sub window_onload) осуществляет при загрузке рисунка вычисление его координат на экране компьютера. Вторая процедура (Sub document_onmousedown()) освобождает указатель курсора и объект рисунок. Третья процедура (Sub document_onmousemove()) проверяет - нажата ли левая кнопка мыши, если она удерживается, то проверяется положение объекта на экране, затем для объекта рисунок определяется ее центр. Для этого из координаты рисунка вычитают половину его горизонтального (вертикального) размера. Для плавного перемещения курсора методу returnValue присваивается значение false. Корпорация Microsoft ввела объект event – событие, который относится к тому объекту на экране, который описывается, проводимым над ним событием. В разработанной программе для объекта рисунок используется объект event и те свойства, которые ему доступны.