Форум 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=129978)

provorov 15.09.2009 01:13

выпадающее меню и кнопка на кнопке
 
http://unicarerecycling.london-jewel.com/

Есть выпадающее меню, при наведении на кнопку выпадает списочек, кнопка соответственно растягивается, при уходе с кнопки список захлопывается обратно. Но как быть с теми кнопками, которые выпадающем в списке?? Переход на них провоцируют основную на захлопывание... (в примере они отключены)

mooncar 15.09.2009 01:53

Не делайте кнопки в кнопках - далеко не уедете.
Например.
Сделайте основной список просто мувиком (list_mc). Сделайте внутренние кнопки также просто мувиками - button1_mc....buttonN_mc (Замените символы Button на MovieClip).
Повесьте на основной мувик onRollOver, как на обычную кнопку.
Далее попробуйте так:
Код AS1/AS2:

list_mc.onRollOver = function {
 
        //идет анимация разворачивания list_mc
 
        this.onMouseUp  = function  () {
 
                if (this.button1_mc.hitTest(_root._xmouse, _root._ymouse)) {
                        trace('Нажали первую кнопку (= onRelease)');
                }
                if (this.button2_mc.hitTest(_root._xmouse, _root._ymouse)) {
                        trace('Нажали вторую кнопку (= onRelease)');
                }
                if (this.button3_mc.hitTest(_root._xmouse, _root._ymouse)) {
                        trace('Нажали третью кнопку (= onRelease)');
                }               
        };
};
 
list_mc.onRollOut = function  () {
 
      //идет анимация сворачивания list_mc
 
        delete this.onMouseUp ;
};

Естественно, никаких записей на самих мувиках, все в кадре.

Wolsh 15.09.2009 02:00

1. Надеюсь, под словом "кнопка" Вы не подразумеваете символ класса Button.. устаревший семь лет назад
2. Такие вещи решаются либо через таймер, либо чаще через hitTest и onMouseMove. То есть задается область всего списка как прозрачный клип, и при движении мыши проверяется, находится ли она в области этого клипа. Кнопки при этом могут спокойно нажиматься и ролловериться. Для инициализации выпадения используете роллОвер основной кнопки, а для закрытия - хитТест с прозрачным клипом.

provorov 15.09.2009 02:12

Ну меня не кнопка в кнопка, а кнопка НА кнопке. они в разных слоях, просто лежат поверху. Сами кнопки конечно мувики...

т.е. я так понимаю как не крути, а делается это только через определение координат мыши?

btstudio 14.12.2009 23:46

Я так понял, что человек не разобрался с этой задачей... :-(
Честно говоря сам зашел на форум с этим вопросом.

mooncar 14.12.2009 23:55

Ответ по прежнему актуален - используйте hitTest при движении мыши, при этом координаты определять нужды нет.

btstudio 16.12.2009 04:50

а можно ссылочку на хороший урок по "hitTest" ?

mooncar 16.12.2009 11:16

Посмотрите пример в хелпе в статье hitTest (MovieClip.hitTest method).


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

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