PDA

Просмотр полной версии : как реализовать кнопку в кнопке


Zhihar
04.05.2008, 17:46
Приветствую

у меня есть movie clip который я перетаскиваю мышкой т.е. обрабатываю onPress onRelease, внутри ролика есть кнопки но они не работают если есть этот onXXX код

как обойти эту проблему т.е. чтобы можно было использовать onPress и чтобы внутри ролика работали кнопки

chingachgoog
04.05.2008, 18:05
Кнопка внутри кнопки (вернее внутри объекта, который работает кнопкой) работать не будет. Обойти классически можно так: onMouseDown + hitTest.

Kuruki
04.05.2008, 18:07
Как вариант (может и не лучший) я бы предложил сделать movie clip "дырявым". А в эти отверстия "засунуть" ваши кнопки.
ЗЫ: :D прошу прощения за порнографию

Molecula
04.05.2008, 18:09
Нужно вешать не на контейнер, а на мувик в контейнере.
Тогда будет не:
this.startDrag();
a
this._parent.startDrag();

Zhihar
04.05.2008, 18:46
Не this._parent - это совсем не то

так получается просто неработоспособный код

Molecula
05.05.2008, 03:00
Я хотел сказать, что this должен указывать не на контейнер в котором кнопки, которые не нажамаются (а точнее onPress контейнера перекрывает доспуп к ним), а this должен указывать на мувик, который в контейнере.
Соответственно, что бы двигать из "внутреннего" "общее", this станет this._parent-ом, вот и всё.

Wolsh
05.05.2008, 13:47
Вот что Molecula имеет в виду:

chingachgoog
05.05.2008, 14:52
Вот что Molecula имеет в виду:

Говоря проще: вместо варианта "кнопка в кнопке", предлагается вариант "кнопка рядом с кнопкой в одном контейнере"

etc
05.05.2008, 16:25
crazyone получает плюс за флейм.

Zhihar
06.05.2008, 09:20
а как же быть с контейнерами-компонентами
как в примере?

Omar2002
15.05.2008, 21:18
Уже выше говорили - хиттест с мышкой, в общем для контейнера используй хиттест, а для внутреннего содержимого стандартные функции onPress, onRelease.

GFreemen
15.05.2008, 22:46
А можно оставить ОнПресс на контейнере и при этом проверять координаты мыши - если при этом они равны координатам какого-либо из внутренних клипов - то либо генерируем событие онПресс для внутреннего клипа, либо просто делаем что надо для данного внутреннего клипа.

А вообще все гораздо проще.
имеем клип контейнер, в нем лежат клипы-кнопки и в самом низу клип-подложка. ОнПресы вешаем на клипы-кнопки и клип-подложку. В онПрессе подложки просто перетаскиваем его парент, т.е. клип-контейнер.

chingachgoog
16.05.2008, 14:47
Кнопка внутри кнопки (вернее внутри объекта, который работает кнопкой) работать не будет


Был не прав. Кнопка в кнопке работать БУДЕТ ЕСЛИ:
1) это именно кнопки (не мувиклипы)
2) если код расположен непосредственно на внутренних кнопках, т.е. в стиле 5-го флеша с обработчиком on(press){...}

PS еще одно преимущество старого стиля в копилку :)