PDA

Просмотр полной версии : Создание выпадающего меню


extruder2
02.11.2007, 20:22
Создаю динамическое выпадающее вертикальное меню. Основной клип Menu, внутри него генерятся клипы MenuItem[], внутри которых расположены текстовые поля, в них грузится текст пунктов меню.

На каждый MenuItem[] заведены обработки событий OnRollOver и OnRollOut, которые изменяют цвет текста внутри. То есть, под мышкой подсвечивается пункт меню.

Возникла следующая проблема. Чтобы вся эта менюшка открывалась при наведении на один из пунктов горизонтального меню, надо задать на этом пункте и на самом клипе Menu обработки событий OnRollOver и OnRollOut. Но при обработке события на клипе Menu, перестаются обрабатываться события OnRollOver и OnRollOut вложенных в него клипов MenuItem[].

Как бы так сделать, чтобы и менюшка открывалась и удерживалась, пока курсор мышки висит над клипом Menu, и в то же время можно было обрабатывать события вложенных клипов?

Прошу помочь.
Спасибо.

Ostgur
02.11.2007, 20:32
повесить на неё переменную, если она равна 1, то не скрывать её даже если мышка наведена на пункт меню.

если переменная станет равна 0, когда мышка не на кнопке и не на меню, то следует скрывать меню.

udaaff
02.11.2007, 20:42
Я такую структуру при создании многоуровневых менюшах использую:
18156
т.е. все кнопки будут являться "тупиками" и их события не будут перектывать события низлежащих объектов. И менюшка получается связана со своей кнопкой при помощи контейнера.

extruder2
03.11.2007, 14:56
повесить на неё переменную, если она равна 1, то не скрывать её даже если мышка наведена на пункт меню.

если переменная станет равна 0, когда мышка не на кнопке и не на меню, то следует скрывать меню.
Так ведь чтобы отслеживать эту переменную, все равно на клип Menu надо прицепить обработку событий OnRollOver и OnRollOut, верно? А при этом не получается отслеживать эти события у вложенных клипов MenuItem[]. В этом и проблема.

Ostgur
03.11.2007, 15:05
в чём проблема? пусть меню итемы лежат в меню.мувиклипе.

extruder2
04.11.2007, 19:14
в чём проблема? пусть меню итемы лежат в меню.мувиклипе.
Эхма, опять двадцать пять. ;)
Ладно, поехали снова.
Меню итемы MenuItem[] представляют собой мувиклипы, которые все вместе лежат в мувиклипе Menu. Так вот, чтобы этот Menu открывался и закрывался, на него прицеплены обработки событий OnRollOver и OnRollOut. Но при этом пропадают события клипов MenuItem[]. Соответственно фиг обработаешь хождение по меню.

Чего делать-то, мужики?

udaaff
04.11.2007, 19:19
А чем вас моя схема не устраивает?

wvxvw
04.11.2007, 19:20
а.... ну, естественно, не определять onRollOver/onRollOut родительского клипа %)

extruder2
06.11.2007, 15:06
А чем вас моя схема не устраивает?

Дык не разобрался я в той схеме. Не вижу отличий от своей схемы, честно говоря. А вообще, конкретики маловато. У меня ведь вопрос очень конкретный, вот есть такое-то событие, такая-то переменная. А в вашей схеме наоборот все очень абстрактно.

а.... ну, естественно, не определять onRollOver/onRollOut родительского клипа %)
Так ведь нельзя не определять. Вот смотри как устроено.
Наводим мышь на горизонтальное меню, срабатывает OnRollOver, открывается вертикальное. Убираем мышь с горизонтального - вертикальное по OnRollOut закрывается. Но нам надо, чтобы при переходе мышью с горизонтального на вертикальное, оно все-таки не закрывалось, а закрывалось только при уводе мыши вообще за пределы как горизонтального, так и вертикального. Поэтому на вертикальном тоже надо ставить OnRollOver и OnRollOut.
А как по-другому то?

wvxvw
06.11.2007, 17:20
Ну, как так нельзя? А если очень хочется? =)
Серьезно, если определен onRollOver родительского клипа, то onRollOver дочернего не вызовется, так система работает =)
Читай как: клип который открывает выпадающее меню не должен быть родительским по отношению к меню, либо не должен реагировать на onRollOver (если клипы меню должны на него реагировать), тут как бы третего не дано =)

Mnilionic
06.11.2007, 18:32
так udaaff и предложил вам схему, где !не пересекаются! события кнопок.
сам так же делаю. Осталось тока флаги выкидывать, какой узел в какой момент сварачивать.

extruder2
06.11.2007, 20:48
Друзья, тогда мне только остается расписаться в своей интеллектуальной импотенции и попросить помощи в виде более конкретного программного кода. :)
Я во Flash весьма молод, и абстрактные схемы мне тяжело переваривать. ;)

extruder2
09.11.2007, 14:11
Обсуждали, обсуждали. А про hitTest так никто и не сказал. Эх вы. :)

udaaff
09.11.2007, 16:15
Обсуждали, обсуждали. А про hitTest так никто и не сказал. Эх вы. :)
А потому что он тут не надо.

Dollores.elf
26.06.2008, 13:18
А меня проблема...мне надо создать 1 основное меню и у каждого его пункта свое выпадающее подменю,я создала 1 выпадающее мню,на 1 пункт..а на 2 не получается,хотя делаю все то же самое,а оно не работает,даже не высвечиваться как кнопка..