Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Появляющаяся менюшка. (http://www.flasher.ru/forum/showthread.php?t=100300)

isangaley 23.08.2007 23:20

Появляющаяся менюшка.
 
Помогите плиз. У меня есть область при наведении мыши на которую должна в другом месте появляться менюшка. Пробовал on (rollOver), но там при наведении на менюшку она сразу исчезает, а эта невидимая область - есть прозрачная кнопка и она естественно все перекрывает. Помогите сделать так чтобы я мог указать координатами например когда мышь заходит в определенный сектор координат то появлялась меню. Или покажите какие другие способы есть.:wacko:

udaaff 24.08.2007 00:13

Help > Flash Samples > ActionScript > XML menu
On Windows, browse to boot drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\XML_Menu.

Как раз то, что тебе надо.

Wolsh 24.08.2007 00:18

Конечно можно координатами прописать. Только из них твоя мышка тоже уйдет :) Тут как просто все ни выглядит, всё же есть логика, которую надо продумать. Вот у тебя область - прозрачная кнопка (можешь смело сделать ее мувиклипом - кнопки уже давно никто не делает, одна морока с ними). Ты навел мышку - гдето другой мувиклип (меню) стал виден. Закрепляем в коде
Код:

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

Цитата:

Сообщение от Wolsh
Конечно можно координатами прописать. Только из них твоя мышка тоже уйдет :) Тут как просто все ни выглядит, всё же есть логика, которую надо продумать. Вот у тебя область - прозрачная кнопка (можешь смело сделать ее мувиклипом - кнопки уже давно никто не делает, одна морока с ними). Ты навел мышку - гдето другой мувиклип (меню) стал виден. Закрепляем в коде
Код:

my_menu._visible = false
my_hitarea.onRollOver = function(){
    my_menu._visible = true
}

После этого ты спокойно можешь тащить мыша к меню - оно уже не пропадет. А вот должно ли оно когда-нибудь опять стать невидимым?

Да я точно также делал, и вот именно что если убрать мышь с невидимой кнопки, то меню исчезнет, вот в чем моя проблема, целый день парился...

udaaff 24.08.2007 01:50

Я бы воспользовался свойством MovieClip'а trackAsMenu в данном случае.

Wolsh 24.08.2007 02:00

Кудаж оно исчезнет, если ему команды не давали?
Я так и не понял, получилось у Вас или нет.

isangaley 24.08.2007 14:01

Оно появляется то появляется, но мне же надо чтоб оно исчезало когда я мыш убираю с области. ну я добавил туда код чтоб исчезала но когда с области мыш уводишь вот она и исчезает вот и проблема, а если этим мувиклипом(невидимой кнопкой)закрыть мою менюшку, то на кнопки нажать уже нельзя будет. Я уже это писал и как ты говорил уже до этого делал, поэтому пишу сюда.

track as menu можно же только у кнопки сделать. ща попробую что-нибудь

я пробовал разобраться в хелпе, но тщетно. слишком все непонятно. Это такое частое явление - появление меню и не могу сделать...

Wolsh 24.08.2007 19:10

Да потому что наводите Вы на одно, а убираете - с другого. Я же советовал над логикой подумать, а так можно бесконечно по кругу ходить.
Навели на хитарею - меню появилось
убрали С МЕНЮ - меню пропало
закрепляйте в коде.

track as menu можно делать у клипов. Кнопки вообще давно уже вчерашний день.

isangaley 24.08.2007 22:16

Да спасибо, я все думал думал как же сделать, а про то что с меню можно действовать не подумал. Но оно в некоторых местах моргает 1 раз почему-то(например когда на кнопку перевожу), а охота чтобы все было четко. Интересно почему координатами нельзя сделать, ведь в области координат если мышь будет ходить то по-идее должно быть все норм.

Wolsh 25.08.2007 16:08

Конечно можно, только на самом деле очень неудобно.
При наведении на хитареа делаете меню видимым и активируете слежение за мышью - например, заводите листенер, который на событие 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 секунд например, то-есть не надо делать чтоб мышь уходила за границу.

Wolsh 30.08.2007 02:53

Ну вот это уже интересней, раньше я спящий режим не делал на своих плеерах ;) Спасибо за идею, а вот реализация
/////// удалено. качаем ниже

isangaley 30.08.2007 16:02

тебе огромное спасибо)) ща буду пробовать твой исходник

isangaley 30.08.2007 17:54

а там ведь когда выходишь за пределы области видео то же ведь надо чтоб исчезало меню через 3 секунды например(как в обычных плеерах), и у тебя еще некая инверсия происходит, меню начинает работать наоборот после повторных заходов на хитаерею. То-есть надо сделать так, чтобы при заходе на хитарею появлялось меню, а при выходе из ареи оно просто само исчезло бы за 3 секунды. Если ты не выходишь из хитареи и не двигаешь мышкой, оно то же исчезает, а если ты двигаешь в арее то оно уже по коду он роллОвер появится и не надо следить за движениями мыши иначе. Ща буду пробовать.

Wolsh 30.08.2007 20:06

Зачем через 3 секунды? Если ты явно увел мышь с экрана - зачем ждать 3 секунды? Убирается сразу.
Инверсия - это при быстром пробеге мышью через экран? Да, пожалуй надо защиту Шумахера поставить...
"Ща буду пробовать" - это гуд. Давно пора :)

isangaley 30.08.2007 20:51

Дело в том, что правильнее всего сделать так - при набеге мыши на арею меню показывается, и все не надо его убирать при выходе из ареи. просто надо поставить таймер на время. а когда выходим за арею то просто отключить все функции работы мыши. И в итоге получается все просто и проблем с инверсией не будет. И не надо задавать координаты и не надо отключать в коде арею и работает без проблем не мешает друг другу. Или например сделать так, чтобы при наведение на меню оно не исчезало вообще если мышь на нем осталась - короче реализовать принцип виндоус медиаплеера, только у нас плюс ко всему работает функция наведения на весь экран, так как это интернет плеер наподобие ютуб. Мой же плеер транслирует вебкамеры с радиостанций и располагается на сайте. Если есть время напиши в аську пожалуйста 300719939

Wolsh 31.08.2007 01:20

Вложений: 1
Ну тогда вот так :) После долгих ночных бдений
Старые неправильные файлы удаляю
Кому интересно качаем этот


Часовой пояс GMT +4, время: 23:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.