Просмотр полной версии : Directory tree
Менюшка по типу tree.
Кто делал, расскажите, чтоб мне колесо не изобретать.
меню-айтемы из чего как лучше делать? Для целей show/hide можно юзать 1) смену координат (выносить за пределы видимости) 2) криейтить и делейтить айтемы.
как организовывали элементы в принципе? В двумерный массив, в н-мерный массив, по классам?
из XML.
пример: http://www.sharedfonts.com/liveDocs/menu/ - менюха слева
исходник: http://www.sharedfonts.com/liveDocs/menu/001help_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 а напрямую, по айдишнику?
И ещё, да, а можно программно повесить акшн-скрипт на мувик?
Вопрос до кучи: Я где-то уже видел, но не могу найти. Как достать до элемента XML не через childNodes а напрямую, по айдишнику?
в каждом ноде в качестве аттрибута пишешь id=уникальный_номер_для_всего_xml
например:
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])
И ещё, да, а можно программно повесить акшн-скрипт на мувик?
имя_клипа.action
_root.createEmptyMovieClip('mask_'+curID, _root.getNextHighestDepth());
_root['mask_'+curID].action = 'on(release) {_root.ActivateLevel(this._name);}';
Чёт не работает on(release)..
_root.createEmptyMovieClip('mask_'+curID, _root.getNextHighestDepth());
_root['mask_'+curID].action = 'on(release) {_root.ActivateLevel(this._name);}';
Чёт не работает on(release)..
:D я же условно :)
_root['mask_'+curID].onRelease = function (){
_root.ActivateLevel(this._name);
}
почему когда я делаю
var rootXMLChild:XMLNode = loader.firstChild;
trace (rootXMLChild[1]);trace (rootXMLChild[1]); не катит, а когда делаю
var rootXMLChild:XMLNode = loader.firstChild;
rootXMLChildNew=new XML (rootXMLChild.toString());
trace (rootXMLChildNew[1]); - работает.
Я уже догадываюсь в чём фишка. Дело в том что между загрузкой хмл и выводом 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;
parentXMLNode.attributes.id=tmp;
...
может правда '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...
Не писать же свою?
А, плевать, написал =)
KidsKilla
01.09.2005, 20:39
Number() //конструктор класса
parseInt() //глобальная, приводит к целому
parseFloat() //глобальная, приводит к числу с плавающей точкой
int() //старая из 4ки
какую изволите? =)
Number() //конструктор класса
parseInt() //глобальная, приводит к целому
parseFloat() //глобальная, приводит к числу с плавающей точкой
int() //старая из 4ки
какую изволите? =)
еще можно умножить на 1 :)
эээ, спасибо, друзья.
но как с предыдущим вопросом? как достать мувик из лайбрари??
но как с предыдущим вопросом? как достать мувик из лайбрари??
Создай символ
В библиотеке щелкни на нем правой мышью и выбери linkage
Выбери export for actionscript и укажи identifier
Все
не подскажете как бы для такого хмл меню сделать прокрутку(скроллинг)!?
я вообще собирался положить это всё в мувик, под маску, и крутить =)
правда ещё не сделал =)
KidsKilla
02.09.2005, 20:23
еще можно умножить на 1 :)
по сути, это тот же Number() =) почти...
по сути, это тот же Number() =) почти...
Это к тому что способов куча.
Обожаю не строгую типизацию. Помню как мучался в Delphi с этим.
KidsKilla
02.09.2005, 22:15
ouh yeah, man, u're in theme =)))
поработайте в сях =) когда вы начнете биться с процом за оптимизацию кеша для ускореня процесса, тогда вы подумаете, что жесткая типизация - тема =)
поработайте в сях =) когда вы начнете биться с процом за оптимизацию кеша для ускореня процесса, тогда вы подумаете, что жесткая типизация - тема =)
Слава богу я в нем не работал. И задачи разные.
ну кстати работают скрипты во флэше жутко медленно. думаю в т.ч. из-за этой мягкости синтаксиса и типизации.. хотя это уже флэйм =)
Прочекайте плиз менюшку, друзья!
http://www.myxus.nm.ru/LTG/
Скролинг везде кроме как по mouse_wheel (кстати есть такая возможность во флеше?).
есть и глюк. при скроллинге, иногда чуть портятся иконки у айтемов. хотя сама функция скроллинга айтемы не трогает, она только двигает родительский для них клип под маской. в чем дело? - незнаю даже как подступиться.
2BitSky: спасибо. работает =)
Я только что видел сайтик где реализован скроллинг on mouse wheel. Только чтот я такого события не вижу в списке.. Это как?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.