Flash-навигатор ilich Спецвыпуск Xakep, номер #027, стр. 027-050-4 Я расскажу тебе про один из способов создания кнопок прокрутки. И не пропускай это мимо своего слухового аппарата - и как просто флешеру, и как дизигнеру это может тебе пригодиться. Ведь весь сайт можно организовать в виде одной большой полосы информации, и кнопки прокрутки здесь будут единственными элементами навигации. Забацаем прокрутку так. На каждый раздел, где она должна быть, делается не один, как мы договаривались, а три конечных кадра. Сразу после анимации перехода или прелоадера действие переходит к первому конечному кадру, в котором текстовым полям присваиваются нужные значения. Там же, в этом самом кадре, стоит проверить, может быть у тебя текста достаточно мало и автокастрации не будет. Посмотри, на сколько символов рассчитан твой "text", отними от этого числа по символов пять на каждую строку текстового поля (на случай переноса слов) и смело сравнивай с длиной текста. Если текст меньше, не задумываясь, тащи кнопки прокрутки (предварительно вполне разумно засунутые в мувики по примеру пунктов меню) за край сцены. И в этом же кадре необходимо задать начальное значение для переменной, указывающей шаг прокрутки: per=0; //шаг if (text1<=(7*(43-5))) { _root.button_up._x=0-_root.button_up._width-10; _root.button_down._x=0-_root.button_down._width-10; //проверяем длину текста и переносим кнопки } _root.text=text1 //присваиваем текст Второму конечному кадру дай имя "text1f2". В нем должна быть конструкция, осуществляющая собственно прокрутку: _root.text.scroll=Number(_root.text.scroll)+per; А в третьем - gotoAndPlay("text1f2"), и все. Последние два кадра, очевидно, работают в цикле, постоянно прокручивая текст. Но так как шаг равен нулю, мы этого пока не видим. И хорошо. Кнопки прокрутки. Их должно быть как минимум две. Та, что прокручивает вверх, должна быть в мувике "button_up", та, что вниз - в "button_down". Как расположить их на экране, я полагаю, ты догадываешься. Для верхней пиши: on (release, releaseOutside) { _root.per = 0; } on (press) { if (Number(_root.text.scroll)>1) { _root.per = -1; } } Для нижней: on (release,releaseOutside) { _root.per=0 } on (press) { if (Number(_root.text.scroll)<Number(_root.text.maxscroll)) { _root.per=1 } } Работает практически так же, как обычная виндовская прокрутка. Если нажали на стрелку вверх, то текст начинает прокручиваться вверх, пока не дойдет до первой строчки. Если на нижнюю - то же самое, только с соответствующими изменениями в направлении прокрутки и ее пределе. Теперь напряги память и вспомни, что еще нам надо было прокручивать. Правильно, мувик. Сделай два новых слоя над слоем с текстовым полем. И соверши над ними следующее надругательство: верхний из них надо сделать маскирующим для нижнего (залезь в свойства верхнего слоя, там все увидишь). Маскирующий слой должен содержать простой прямоугольник ровно над нашим основным текстовым полем. Получится такой эффект, будто мувик прокручивается в текстовом поле точно так же, как обычный текст других разделов. В нижний тащи мувик, подлежащий прокрутке, располагай его так, чтобы его верхний край совпадал с верхним краем основного текстового поля, и давай ему имя "mov_text2" (типа того раздел второй). В ситуации с мувиком скрипты меняются лишь только в первом и втором конечных кадрах анимации. В первом оставляем присвоение переменной "per" начального значения 0, проверку на высоту мувика и присвоение переменной "mov_y" значения начальной вертикальной координаты мувика: |