![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2010
Сообщений: 282
|
Всем привет,
Подскажите можно ли сделать меню типа аккардион (раскрывающееся) средствами AS 2.0 (без Tween анимации)? Например гружу из XML Имена пунктов меню + ссылки к ним вот так. menu_xml = new XML(); // Создаём обьект XML menu_xml.ignoreWhite = true; // Игнорируем все ненужные пробелы // Отслеживаем загрузку xml menu_xml.onLoad = function(ok) { if (ok) { F_createMenu(); } } menu_xml.load("menu.xml"); // Загружаем menu.xml // Функцию для создания меню F_createMenu = function () { // Заводим переменную для хранения количества элементов массива var lenMass = menu_xml.childNodes[0].childNodes.length; // В цикле перебираем массив for (var i = 0; i<lenMass; i++) { // Для каждой кнопки создаём мувик _root.createEmptyMovieClip("btn"+i, i); // Переменная хранящая название кнопки var b = _root["btn"+i]; // Аттачим из библиотеки задний фон для кнопки b.attachMovie("back", "back", 1); // Создаём текстовое поле для отображения названия кнопки b.createTextField("tf", 2, 0, 0, 200, 20); // Применяем к тексту нужные параметры with (b.tf) { selectable = false; // Вытаскиваем из массива нужное название кнопки text = menu_xml.childNodes[0].childNodes[i].attributes.menu_name; } // Устанавливаем кнопки по вертикали друг за другом с промежутком в один пиксель b._y = (b._height+1)*i; // Задаём для каждой кнопки ссылку для перехода по ней при нажатии b.link = menu_xml.childNodes[0].childNodes[i].attributes.link; // Вешаем обработчик событий нажатия на кнопку b.onPress = function() { getURL(this.link, "_self"); // При нажатии переходим по ссылке }; } };
анимацию для раскрывающегося списка подменю с помощью AS 2.0? Была у меня идея создать отдельные XML для каждого пункта меню и грузить их по порядку но это думаю неправильно? И пожалуйста не отправляйте меня Гуглить или Читать учебник. Лучше направьте в нужное русло подсказками. |
|
|||||
|
Модрон-ветеринар
|
Есть стандартный компонент Accordion (кстати, по русски все-таки правильно писать "аккордеон")
Adobe Flash, Ctrl + F7, выбираете Accordion и программно настраивайте в соответствии с вашими данными, полученными из XML. Что и как, есть в хелпе, статья "Accordion component".
__________________
Идите первым! Последний раз редактировалось mooncar; 08.06.2011 в 19:07. |
|
|||||
|
http://wedding-tur.ru/
Меню-книжка с аккордеоном. рассмотрю коммерческие предложения ![]() ХМЛ также содержит следующие настройки. // speed - скорость раздвигания. Сдивгание - в 2 раза быстрее (сек) // flipspeed - скорость перелистывания (миллисек) // X0, Y0 - позиция первой строки осн.меню // mainSpace - - интервал между строками осн.меню // spacing - интервал строк субМеню // delay - задержка перед переходом на ссылку (сек) При желании сама листалка легко отламывается. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 282
|
dark256 Мне книжка эта не нужна, причем исходников подобных куча бесплатно нагуглить можно. Помоги лучше если можешь по доброте душевной, а это предложение в вакансии )))
Добавлено через 3 минуты Цитата:
|
|
|||||
|
Модрон-ветеринар
|
Не хотите готовые... Наверное тогда у вас это уже будет не "компонент" в строгом смысле, если полученный модуль не будет соответствовать определенным требованиям, предъявляемым к "компонентам", как то - переносимость, наличие пользовательских свойств и методов. Получится просто необходимая вам разработка. Ну это так, терминологическое отступление.
Готового такого у меня нет, нужно просто сесть и написать, используя весь свой опыт. ![]() Единственное, что могу посоветовать, для анимаций можно использовать класс TweenLite от Greensock.
__________________
Идите первым! |
|
|||||
|
Цитата:
Литературным языком рассказать ВСЕ от начала и до конца? Это малоконструктивно. Не говоря уже о том, что толку будет мало. 1. Хмл - сделайте со вложенными узлами 2-го уровня. 2. Двигать - можно так, как сказал mooncar, а можно самому по onEnterFrame 3. код на кнпках не писать. все ![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 282
|
Цитата:
1. Насчет сделать XML с вложенными узлами я не смог прописать условие по которому будут извлекаться подменюшки. Единственное до чего пока допер это сделал XML с узлами 1 уровня но прописал параметр показывающий что это пункт меню или пункт подменю (при pmenu="0" - меню при pmenu="1" - подменю)... В подменю прописал переменную которая говорит к какому пункту меню енто подменю относится (NumMenu). Примерно так.
![]() |
|
|||||
|
Модрон-ветеринар
|
Неверный подход к XML...
Много избыточного и вы совершенно не используете вложенность узлов, отражая ею структуру меню. Теряется сам смысл XML. Например, нет необходимости указывать, к какому меню относится подменю. Это и так следует из структуры XML. Так лучше: <?xml version="1.0" encoding="utf-8"?> <all_menu> <menu id="1" url="" name="Меню 1"> <submenu id="1" url="" name=""/> <submenu id="2" url="" name=""/> <submenu id="3" url="" name=""/> </menu> <menu id="2" url="" name="Меню 2"> <submenu id="1" url="" name=""/> <submenu id="2" url="" name=""/> <submenu id="3" url="" name=""/> </menu> <menu id="3" url="" name="Меню 3"> <submenu id="1" url="" name=""/> <submenu id="2" url="" name=""/> <submenu id="3" url="" name=""/> </menu> </all_menu>
__________________
Идите первым! Последний раз редактировалось mooncar; 09.06.2011 в 19:39. |
|
|||||
|
во. именно. далее читаем про childNodes
|
|
|||||
|
Регистрация: Aug 2010
Сообщений: 282
|
Цитата:
Про childNodes почитал, со своей XML делал так а в "правильном" XML я так понимаю нужно делать примерно так Или так неправильно делать, лучше в массив и циклом грузить? Но тогда чето пока я не понимаю как из массива все доставать по id. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| xml аккордион , xml меню , аккордион меню , раскрывающееся меню |
| Опции темы | |
| Опции просмотра | |
|
|