Copyright © 2004 | ||||||||||||
|
||||||||||||
полозок |
||||||||||||
содержание: | ||||||||||||
укомплектовываем сцену назначаем курсоры пишем свою функцию "sliderScriptH" организовываем горизонтальное движение полозка за мышью ограничиваем движения полозка знакомимся с функциями "min()" , "max()" копирование перетаскиванием меняем вид полозка отображаем результаты движения полозка в текстовом поле зацикливаем действие во 2-м кадре |
||||||||||||
укомплектовываем сцену | ||||||||||||
Импортируем в Cast Window
две картинки: вид незадействованного слайдера и
вид задействованного слайдера.
Причём картинки должны быть в соседних ячейках, а картинка незадействованного
слайдера должна иметь больший порядковый номер ячейки. Это важно для последующего
программирования. На сцене рисуем прямоугольник инструментом Filled Rectangle В Инспекторе свойств на закладке Sprite задаём размеры прямоугольника и Foreground Color (жёлтый).
Перетащим на сцене слайдер на жёлтый прямоугольник.
|
||||||||||||
назначаем курсоры | ||||||||||||
Создадим для полозка новый Behavior (любым из описанных в "бабочке" способом) . (Например: пр. кнопкой мыши в полозок на сцене; выбрать "Behaviors..."; выбрать "+"; выбрать "New Behavior..."; впечатать название "полозок"; "OK";)
В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "Mouse Enter". Нажав на кнопку со знаком плюс в группе "Actions", выбираем
"Cursor" ->"Change Cursor..."
В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "Mouse Leave". Нажав на кнопку со знаком плюс в группе "Actions", выбираем "Cursor" ->"Restore Cursor..."
В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "Mouse Down". Нажав на кнопку со знаком плюс в группе "Actions", выбираем
"Cursor" ->"Change Cursor..."
В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "Mouse Up". Нажав на кнопку со знаком плюс в группе "Actions", выбираем
"Cursor" ->"Change Cursor..."
|
||||||||||||
пишем функцию "sliderScriptH" | ||||||||||||
Теперь нам надо ограничить движение
слайдера.
В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "New Event..." и в открывшемся окне впечатываем "sliderScriptH".
Создаём переменную-свойство mySprNum и инициализируем её: В окне "Behavior Inspector", нажав на кнопку со знаком плюс в группе "Events", выбираем "Begin Sprite". Нажав на кнопку со знаком плюс в группе "Actions", выбираем
"New Action..." Затем, нажав на кнопку "Script Window",
открываем скрипт "полозок" в Окне Скриптов и
Дописываем в скрипт первую строчку "property mySprNum". Так надо. Для объявления переменной.
Ставим курсор внутрь нашей доморощенной функции "sliderScriptH", и вставляем заготовку цикла "repeat while...end repeat". Выберете один из двух способов:
Вместо появившегося "testcondition" ставим "the stillDown", что означает:"будем делать, пока нажата левая кнопка мыши". А вместо "statement" напишем две строчки
Теперь нужно впечатать название нашей рабочей функции "sliderScriptH" (или "sliderScriptH()" ) внутри функции "mouseDown", чтобы её код выполнялся при нажатии кнопки мыши. Для этого достаточно перетащить выделенное слово в нужное место, удерживая при этом клавишу "Ctrl". Не забудьте нажать клавишу "Tab", чтобы придать стройный вид написанному. Запустив воспроизведение , уже можно потаскать слайдер вправо-влево ! Но надо нажать кнопку "стоп" и попытаться ограничить движение слайдера границами жёлтого прямоугольника фона.
Для начала перед "repeat while" объявим три локальые переменные: Теперь вместо "sprite(mySprNum ).locH = (the mouseH)" пишем:
По-моему довольно понятно, но почему-то считается "признаком хорошего тона" писать то же самое через не очень наглядное "min - max":
L =max(the mouseH, LeftLimit )--не пускаем
левее LeftLimit. Выбираем наибольшее из двух:(the mouseH, LeftLimit ) или ещё короче и непонятнее:
H=min(max(the mouseH,LeftLimit ), RightLimit)--устанавливаем
пределы Теперь сами выбирайте, что написать вместо "sprite(mySprNum ).locH = (the mouseH)". |
||||||||||||
меняем вид полозка | ||||||||||||
Чтобы поменять вид полозка (поменять
"мембера") при входе курсора в
область спрайта, в функцию "on mouseEnter me" вписываем строку: Вот именно для этого мы и разместили картинки в соседних ячейках Cast Window.
|
||||||||||||
отображаем результаты движения полозка в текстовом поле на сцене | ||||||||||||
Инструментом "Field" из "Tool Palette" "нарисуем" на сцене (справа от жёлтого прямоугольника) тестовое поле.(Или: Главное Меню->Insert->Control->Field). Впечатываем, скажем, в Cast Window его название: "текст" n=(sprite(mySprNum).left - sprite (mySprNum-1).left) --будет от 0 до 148 :) member("текст").text =string (n) --переводим цифру в строку Ну и для порядка зацикливаем действие во 2-м кадре (смотри "опыты с бабочкой").
|
||||||||||||
на главную | ||||||||||||