![]() |
hitTest выпадающей части ComboBox
Здравствуйте!
Как заставить выпадающую часть ComboBoxа реагировать на hitTest? Вот для примера. Код AS1/AS2:
|
В принципе у комбобокса внутри есть некий мувик boundingBox_mc, вероятно как-то связанный с его границей.
Код AS1/AS2:
Решение только такое придумывается - проверять hitTest на область, ограниченную cbx._width и cbx._height - эти свойства вроде бы правильно отображают видимые размеры комбобокса при работе с ним. |
Код AS1/AS2:
Или я что-то не понимаю? |
Да, поторопился я сказать по поводу "правильно отображают"...
Действительно, значение cbx._height после открытия комбобокса остается фиксированным, видимо, максимальным. Даже если обернуть комбобокс в мувик и использовать высоту последнего, она также после открытия остается той же самой. Идей больше нет. Разе что свой комбобокс создать, с предсказуемыми свойствами. |
Тогда может быть мой частный случай можно решить другим путём.
Вверху карты города, которая масштабируется колёсиком и перемещается нажатой левой кнопкой мышки присутствует список улиц в ComboBoxе. И вот когда список разворачивается, любые манипуляции с ползунком списка передаются также и на карту. Переставить список так чтоб он не пересекался с картой некуда. Кроме hitTestа пробовал в условиях масштабирования и перемещения отслеживать высоту ComboBoxа, но тогда после сворачивания списка из за того что высота не возвращается масштабирование и перемещение перестаёт работать. Пробовал ComboBoxу по клику подложить под выпадающую часть какой нибудь клип и потом отслеживать его. Но тогда список перестаёт разворачиваться, не помогает даже если назначить это событие родительскому клипу. Заранее огромное спасибо всем кто откликнется. |
Как вариант... периодически отрисовывать список в битмапдату и проверять через getPixel в определенной позиции цвет, где список выпадает. Если цвет не белый - список выпал - блокировать карту.
|
С битмапой - это как-то не по-человечески. Давайте-ка танцевать "от печки" и рассматривать событийную модель.
Автор, вам надо, чтобы если юзер начать использовать комбобокс, функции для работы с картой не работали. И когда юзер закрывал бы комбобокс, эти функции опять бы включались. Открываем хелп, видим, что у комбобокса есть подходящие события: ComboBox.open (Broadcast when the drop-down list begins to open.) и СomboBox.close (Broadcast when the list of the combo box begins to retract.) Назначим на их обработку функции, которые бы переводили бы некий разрешающий триггер на false (когда происходит ComboBox.open) и на true (для СomboBox.close). Останется в функциях для управления картой ввести проверку на этот триггер. Если он будет в состоянии false, функция управления картой не будет выполнять свои действия. |
Вложений: 1
Вот пример.
На карте используем колесико для изменения масштаба. Как только открываем комбобокс, карта перестает реагировать на колесико. Закрываем - карта опять реагирует на колесико. |
По приведённому примеру сделал изменения. Всё работает отлично.
Огромное спасибо. |
| Часовой пояс GMT +4, время: 16:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.