![]() |
Directory tree
Менюшка по типу tree.
Кто делал, расскажите, чтоб мне колесо не изобретать. меню-айтемы из чего как лучше делать? Для целей show/hide можно юзать 1) смену координат (выносить за пределы видимости) 2) криейтить и делейтить айтемы. как организовывали элементы в принципе? В двумерный массив, в н-мерный массив, по классам? |
из XML.
пример: http://www.sharedfonts.com/liveDocs/menu/ - менюха слева исходник: http://www.sharedfonts.com/liveDocs/...1help_menu.fla там есть бодяга одна с переделкой XML иерархии, ее нужно бы грохнуть за ненадобностью, а отдавать правильный XML. |
если попроще, то есть еще вот: http://www.dembicki.narod.ru/tutor/menu_flash_xml.zip
- тщательно закомментированный код, но весьма устаревший. |
сложная штука, чёрт. без трёх литров не разобраться..
сам буду писать =) |
Вопрос: у текста элементов меню непредсказуемая ширина. Как бы мне сделать облать для onRollOver нужного размера?
Поскольку я генерю menu-items как createTextField с указанной шириной, заюзать item._width я не могу. Шрифт - не равноширинный. Как быть? Может можно как-то сгенерить саморастягивающийся текстфилд ? |
Помести текст в мувиклип.
сделай autosize=true А на мувиклип повесь onRollOver. Теперь вся область занятая текстом будет активна как кнопка |
Thanx a lot!!
Вопрос до кучи: Я где-то уже видел, но не могу найти. Как достать до элемента XML не через childNodes а напрямую, по айдишнику? И ещё, да, а можно программно повесить акшн-скрипт на мувик? |
Цитата:
например: xmlID=new XML ("<a id='1'/><b id='2'><bb id='4'/></b><c id='3'/>") trace (xmlID[1]) trace (xmlID[2]) trace (xmlID[3]) trace (xmlID[4]) Цитата:
|
Код:
_root.createEmptyMovieClip('mask_'+curID, _root.getNextHighestDepth()); |
Цитата:
_root['mask_'+curID].onRelease = function (){ _root.ActivateLevel(this._name); } |
Крутаа! Занкс! :cool:
|
почему когда я делаю
Код:
var rootXMLChild:XMLNode = loader.firstChild;Код:
var rootXMLChild:XMLNode = loader.firstChild; |
Я уже догадываюсь в чём фишка. Дело в том что между загрузкой хмл и выводом trace проводится раздача айдишников. Поскольку айдишник должен быть (почему-то) стринговым, мне приходится таскать за собой нормальный нумерик айдишник, и юзать его так:
var tmp:String = itemNum; parentXMLNode.attributes.id=tmp; После этой операции вызов типа trace (xmlID[1]) не работает. Но если загнать xml, как я писал выше, в стринг, а потом прогрузить обратно - работает. Значит какая-то заковыка в типе данных id. ? |
Помнишь я тебе давал пример xml c id
xmlID=new XML ("<a id='1'/><b id='2'><bb id='4'/></b><c id='3'/>") Заметь id там задается как id='1' а не id=1 |
я понимаю. но я ж написал, что присваиваю айдишник как
Код:
var tmp:String = itemNum;может правда 'aaa' отличается от "aaa", но другого подходящего типа кроме :String я не нашел. |
по сути id это обычная переменная, назначаемая во время парсинга xml-строки в xml-объект, если такой атрибут встречается в узле.
условно код такой: ..... var rootNode = new XML() ..... if (node.attributes.id !=undefined) { rootNode[node.attributes.id] = node } - и всё. никаких заморок. если сам назначаешь id, то побеспокойся о том, чтобы по той же схеме у тебя появилась ссылка на узел в рутовом ноде. |
полезности смотри здесь: http://proto.layer51.com/l.aspx?p=19
|
Угу. занкс, почитаю.
У меня последняя заморока осталась по дереву: Допустим у меня в библиотеке есть мувик mov_name. Я создаю emptyMovieClip и хочу туда етот mov_name запихнуть. Мне уже говорили что надо юзать attachMovie(linkage... ). Только как же прописать линкаж в библиотеку? Ну и ещё, по мелочи. Когда я нажимаю на пункт меню, по которому должен грузиться текст (в другой фрейм) - можно грузить его отдельной xml. А можно подгрузить простой txt-шник? |
Пардон, друзья. Никак не могу найти функцию strToNum...
Не писать же свою? А, плевать, написал =) |
Number() //конструктор класса
parseInt() //глобальная, приводит к целому parseFloat() //глобальная, приводит к числу с плавающей точкой int() //старая из 4ки какую изволите? =) |
Цитата:
|
эээ, спасибо, друзья.
но как с предыдущим вопросом? как достать мувик из лайбрари?? |
Цитата:
В библиотеке щелкни на нем правой мышью и выбери linkage Выбери export for actionscript и укажи identifier Все |
не подскажете как бы для такого хмл меню сделать прокрутку(скроллинг)!?
|
я вообще собирался положить это всё в мувик, под маску, и крутить =)
правда ещё не сделал =) |
Цитата:
|
Цитата:
Обожаю не строгую типизацию. Помню как мучался в Delphi с этим. |
ouh yeah, man, u're in theme =)))
|
поработайте в сях =) когда вы начнете биться с процом за оптимизацию кеша для ускореня процесса, тогда вы подумаете, что жесткая типизация - тема =)
|
Цитата:
|
ну кстати работают скрипты во флэше жутко медленно. думаю в т.ч. из-за этой мягкости синтаксиса и типизации.. хотя это уже флэйм =)
|
Прочекайте плиз менюшку, друзья!
http://www.myxus.nm.ru/LTG/ Скролинг везде кроме как по mouse_wheel (кстати есть такая возможность во флеше?). |
есть и глюк. при скроллинге, иногда чуть портятся иконки у айтемов. хотя сама функция скроллинга айтемы не трогает, она только двигает родительский для них клип под маской. в чем дело? - незнаю даже как подступиться.
|
округляй координаты
|
2BitSky: спасибо. работает =)
Я только что видел сайтик где реализован скроллинг on mouse wheel. Только чтот я такого события не вижу в списке.. Это как? |
| Часовой пояс GMT +4, время: 14:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.