75 уроков по Photoshop на русском языке



Создаем полосу прокрутки в Flash МХ - часть 2


Теперь займемся полосой прокрутки. Зайдите во второй кадр слоя "scroll track".
Нарисуйте прямоугольник нужной ширины и убедитесь, что его высота не превышает размер динамического текстового поля. Установите выравнивание вправо. Преобразуйте в символ клипа и назначьте имя "scroll_track".

Сейчас мы добавим немного кода. В слое "actions" в первом кадре вставьте

stop();

Во втором кадре ("scroll_loop") вставьте

play();

Мы еще вернемся к этому коду.

В последнем кадре вставьте

gotoAndPlay("scroll_loop");

Теперь вернитесь в корневой каталог и добавьте там код:

function showText(message) {
main.w_field.text = message;
if (main.w_field.maxscroll > main.w_field.scroll) {
main.gotoAndPlay("scroll_loop");
}
}

В слое "actions" добавьте:

my_text = "побольше текста, иначе не будет видно полосы прокрутки";
showText(my_text);
stop();

Мы делаем так, чтобы полоса прокрутки появлялась только тогда, когда в тексте больше строк, чем можно отобразить за один раз.

Кнопки "вверх" и "вниз"

Зайдите в главный клип.

Я использовала в качестве основы кнопку со стрелкой из набора готовых компонентов. Вы можете создать собственные кнопки. Единственное, что они должны быть такой же ширины, как полоса прокрутки. Поместите их на полосу прокрутки и выравняйте вверху и внизу. Элементам дайте имена "up_arrow" (стрелка "вверх") и "down_arrow" (стрелка вниз).

Теперь мы добавим функцию, которая будем прогонять текст в направлении, соответствующем нажатой кнопке:

function scrollIt() {
w_field.scroll += pressed;
}
function stopScroll() {
still_pressed = false;
pressed = false;
}
function callBack() {
if (pressed) {
still_pressed = true;
} else {
still_pressed = false;
}
clearInterval(checkIfPressed);
}
up_arrow.onPress = function() {
pressed = -1;
if (w_field.scroll > 1) {
scrollIt();
}
checkIfPressed = setInterval(callBack, 500);
}
down_arrow.onPress = function() {
pressed = 1;
if (w_field.scroll < w_field.maxscroll) {
scrollIt();
}
checkIfPressed = setInterval(callBack, 500);
}
up_arrow.onRelease = down_arrow.onRelease = up_arrow.onReleaseOutside = down_array.onReleaseOutside = stopScroll;




Содержание  Назад  Вперед