Просмотр полной версии : Появляющаяся менюшка.
isangaley
23.08.2007, 23:20
Помогите плиз. У меня есть область при наведении мыши на которую должна в другом месте появляться менюшка. Пробовал on (rollOver), но там при наведении на менюшку она сразу исчезает, а эта невидимая область - есть прозрачная кнопка и она естественно все перекрывает. Помогите сделать так чтобы я мог указать координатами например когда мышь заходит в определенный сектор координат то появлялась меню. Или покажите какие другие способы есть.:wacko:
Help > Flash Samples > ActionScript > XML menu
On Windows, browse to boot drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\XML_Menu.
Как раз то, что тебе надо.
Конечно можно координатами прописать. Только из них твоя мышка тоже уйдет :) Тут как просто все ни выглядит, всё же есть логика, которую надо продумать. Вот у тебя область - прозрачная кнопка (можешь смело сделать ее мувиклипом - кнопки уже давно никто не делает, одна морока с ними). Ты навел мышку - гдето другой мувиклип (меню) стал виден. Закрепляем в коде
my_menu._visible = false
my_hitarea.onRollOver = function(){
my_menu._visible = true
}
После этого ты спокойно можешь тащить мыша к меню - оно уже не пропадет. А вот должно ли оно когда-нибудь опять стать невидимым?
isangaley
24.08.2007, 01:21
Спасибо. Да мне надо чтоб он снова становился невидимым. Другими словами: я сделал видеоплеер, при наведении мыши на которого я хотел бы чтоб появлялось меню с кнопками плей громкость и т д, тоесть должен появляться мувиклип в котором все эти кнопки. А насчет xml я не думаю что мне это подойдет.
isangaley
24.08.2007, 01:22
Конечно можно координатами прописать. Только из них твоя мышка тоже уйдет :) Тут как просто все ни выглядит, всё же есть логика, которую надо продумать. Вот у тебя область - прозрачная кнопка (можешь смело сделать ее мувиклипом - кнопки уже давно никто не делает, одна морока с ними). Ты навел мышку - гдето другой мувиклип (меню) стал виден. Закрепляем в коде
my_menu._visible = false
my_hitarea.onRollOver = function(){
my_menu._visible = true
}
После этого ты спокойно можешь тащить мыша к меню - оно уже не пропадет. А вот должно ли оно когда-нибудь опять стать невидимым?
Да я точно также делал, и вот именно что если убрать мышь с невидимой кнопки, то меню исчезнет, вот в чем моя проблема, целый день парился...
Я бы воспользовался свойством MovieClip'а trackAsMenu в данном случае.
Кудаж оно исчезнет, если ему команды не давали?
Я так и не понял, получилось у Вас или нет.
isangaley
24.08.2007, 14:01
Оно появляется то появляется, но мне же надо чтоб оно исчезало когда я мыш убираю с области. ну я добавил туда код чтоб исчезала но когда с области мыш уводишь вот она и исчезает вот и проблема, а если этим мувиклипом(невидимой кнопкой)закрыть мою менюшку, то на кнопки нажать уже нельзя будет. Я уже это писал и как ты говорил уже до этого делал, поэтому пишу сюда.
track as menu можно же только у кнопки сделать. ща попробую что-нибудь
я пробовал разобраться в хелпе, но тщетно. слишком все непонятно. Это такое частое явление - появление меню и не могу сделать...
Да потому что наводите Вы на одно, а убираете - с другого. Я же советовал над логикой подумать, а так можно бесконечно по кругу ходить.
Навели на хитарею - меню появилось
убрали С МЕНЮ - меню пропало
закрепляйте в коде.
track as menu можно делать у клипов. Кнопки вообще давно уже вчерашний день.
isangaley
24.08.2007, 22:16
Да спасибо, я все думал думал как же сделать, а про то что с меню можно действовать не подумал. Но оно в некоторых местах моргает 1 раз почему-то(например когда на кнопку перевожу), а охота чтобы все было четко. Интересно почему координатами нельзя сделать, ведь в области координат если мышь будет ходить то по-идее должно быть все норм.
Конечно можно, только на самом деле очень неудобно.
При наведении на хитареа делаете меню видимым и активируете слежение за мышью - например, заводите листенер, который на событие onMouseMove запускает обработчик, проверяющий координаты мыши. И как только мышь ушла из координат, обработчик делает меню невидимым и удаляет листенер.
var MenuMouseListener:Object = new Object();
hitarea_mc.onRollOver = function(){
menu_mc._visible = true;
Mouse.addListener(MenuMouseListener);
}
MenuMouseListener.onMouseMove = function(){
if (_xmouse < 10 | _xmouse > 150 | _ymouse < 50 | _ymouse > 300){
menu_mc._visible = false;
Mouse.removeListener(MenuMouseListener);
}
}
Но это если хитареа совпадает с областью меню и находится под ним
Т.е. проблема с координатами в том, что если Вы наезжаете на хитареа в одном месте, а меню находится в другом, то Вам еще надо дотащить туда мышь - а ее координаты при этом НЕ ТЕ, что что у меню, и меню должно закрываться. Соотв. Вам придется добавлять еще кучу всего. Ну и неудобно то, что координаты вообще-то должны иметь свободу меняться. Хотя бы для удобства разработки. Но для вашего плеера это, думаю, вполне подойдет. Только хитарею поместите на глубине, меньшей чем у меню, чтоб она не перекрывала меню сверху.
isangaley
29.08.2007, 19:10
спасибо!!! мне как-раз это и надо было! у меня меню ведь в видеоплеере. А вот вопрос можно ли сделать так чтобы меню уезжало через 5 секунд например, то-есть не надо делать чтоб мышь уходила за границу.
Ну вот это уже интересней, раньше я спящий режим не делал на своих плеерах ;) Спасибо за идею, а вот реализация
/////// удалено. качаем ниже
isangaley
30.08.2007, 16:02
тебе огромное спасибо)) ща буду пробовать твой исходник
isangaley
30.08.2007, 17:54
а там ведь когда выходишь за пределы области видео то же ведь надо чтоб исчезало меню через 3 секунды например(как в обычных плеерах), и у тебя еще некая инверсия происходит, меню начинает работать наоборот после повторных заходов на хитаерею. То-есть надо сделать так, чтобы при заходе на хитарею появлялось меню, а при выходе из ареи оно просто само исчезло бы за 3 секунды. Если ты не выходишь из хитареи и не двигаешь мышкой, оно то же исчезает, а если ты двигаешь в арее то оно уже по коду он роллОвер появится и не надо следить за движениями мыши иначе. Ща буду пробовать.
Зачем через 3 секунды? Если ты явно увел мышь с экрана - зачем ждать 3 секунды? Убирается сразу.
Инверсия - это при быстром пробеге мышью через экран? Да, пожалуй надо защиту Шумахера поставить...
"Ща буду пробовать" - это гуд. Давно пора :)
isangaley
30.08.2007, 20:51
Дело в том, что правильнее всего сделать так - при набеге мыши на арею меню показывается, и все не надо его убирать при выходе из ареи. просто надо поставить таймер на время. а когда выходим за арею то просто отключить все функции работы мыши. И в итоге получается все просто и проблем с инверсией не будет. И не надо задавать координаты и не надо отключать в коде арею и работает без проблем не мешает друг другу. Или например сделать так, чтобы при наведение на меню оно не исчезало вообще если мышь на нем осталась - короче реализовать принцип виндоус медиаплеера, только у нас плюс ко всему работает функция наведения на весь экран, так как это интернет плеер наподобие ютуб. Мой же плеер транслирует вебкамеры с радиостанций и располагается на сайте. Если есть время напиши в аську пожалуйста 300719939
Ну тогда вот так :) После долгих ночных бдений
Старые неправильные файлы удаляю
Кому интересно качаем этот
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.