Выпадающий список
Автор: Nikitar
Сайт: Rusforumz.com
В этом уроке мы коснёмся компонентов, а точнее немного поразбираемся с компонентом ComboBox. Этот урок необычный, так как я поставлю реальную задачу, на которую надо будет найти реальное решение. Все знают, что это 10-й выпуск журнала "Это веб-диз, детка!", который с этого раза был переименован в WebDix. У меня есть 10 ссылок для скачивания соответственно десяти выпусков журнала, они все отличаются только цифрой. Я хочу создать выпадающий список с названиями выпусков и кнопкой "Скачать". И чтобы при нажатии на кнопку скачивался именно тот выпуск, что я выбрал. В общем, результат вы можете увидеть внизу страницы, а вот как это делать, сразу после этого абзаца.
1. Откройте программу Macromedia Flash (любая версия программы от 7-й. Но для просмотра того, что находится внизу страницы вам понадобится 8-й плеер и выше). Создайте новый документ, с любыми размерами, с fps 25 кадров.
2. Открываем окно компонентов Window (Окно) - Components (Компоненты). Ищем компонент ComboBox и перетаскиваем его на рабочую область документа. Там теперь то, что на скриншоте. Выделяем компонент и пишем в instance name (имя Экземпляра) название компонента. Так как мы делаем это для журнала, то назовём компонент journal. И ещё сделаем его пошире, так как стандартный компонент имеет ширину 100, сделаем 200. Заходим на вкладку Parameters (Параметры) и изменяем параметр RowCount (количество строчек) по своему усмотрению. Это параметр, который отвечает сколько строчек будет видно при развёртывании списка, я поставил 5, вы можете поставить сколько захотите, но нужно учитывать тогда размер ролика, чтобы если указано большое число видимых строчек, они не выходили за пределы ролика.
![Компонент ComboBox](../images/screens/f_3_1.jpg)
3. Создаём новый слой, и в первом кадре вставляем такой код (код буду писать по частям и объяснять)
for (i=1; i<=10; i++){
commonname = "'Это веб-диз, детка' | выпуск ";
journal.addItem({data:(11-i), label:commonname+(11-i)});
}
В этом коде мы видим цикл. Цикл нужен для того, чтобы автоматически подставлять числа от 1 до 10 в код (так как у нас 10 выпусков). В цикле у нас есть переменная commonname - это общее для всех строчек имя. И наконец вторая строчка в цикле, которая собственно добавляет в разворачивающийся список новое значение с помощью параметра addItem. В скобках у нас есть 2 значения data и label. Data - это номер журнала, просто цифра и ничего более, это нам понадобится потом для кнопки. Label - само значение строки в списке, оно состоит из commonname и переменной i, которая меняется в цикле. Так как я хочу, чтобы 10-й выпуск стоял первым в списке, а 1-й последним, то я пишу (11-i).
4. Если сейчас проверить ролик (ctrl+Enter), то вы увидите разворачивающийся список, но ничего с ним не происходит, можно выбирать строки, но для чего? Вот для этого мы и добавим кнопку скачать. Нарисуйте прямоугольник, выделите его и нажмите F8 - MovieClip (видеоролик). Зайдите в мувиклип и напишите слово "Скачать" поверх прямоугольника. Теперь вернитесь на главную сцену, выделите прямоугольник и в instance name (имя экземпляра) впишите down_btn.
![То что должно получиться. Выпадающий список и кнопка скачать](../images/screens/f_3_2.jpg)
5. В общий код добавляем код, который будет работать при нажатии на кнопку "Скачать".
down_btn.onRelease=function(){
ppt=Number(journal.value);
url="http://webdix.ru/fclick.php?ad="+ppt;
getURL(url,"_blank");
}
Строчек опять не так много, но каждая требует объяснения. Первая и последняя строчки - функция, которая выполняется, когда пользователь нажимает на кнопку down_btn.
Вторая строчка. Мы узнаём значение выбранной позиции в списке на тот момент, когда нажата кнопка и записываем значение в переменную ppt (так как переменная особого смысла не имеет, то я назвал её тремя случайными буквами). В общем, узнаёт значение параметр value? и узнаёт он то значение, что у нас стоит в data (помните у нас при создании списка указывалось два вида данных data и label). Number - переводим значение в числовой вид, чтобы потом можно было с ним оперировать как с числом (это очень важно).
Третья строчка. Переменная url содержит постоянную основую для всех адресов, а также номер выбранной строки, который записан в переменную ppt
Четвёртая строчка. Мы просто переходим по этому адресу с помощью getURL.
6. Жмём ctrl+Enter, и должно получиться нечто, что находится внизу этой страницы. Кстати компоненты достаточно много весят. Например, флэшка что внизу весит аж 56 килобайт, это много для информации, которая там есть.