|
|
|||||
Регистрация: Sep 2008
Сообщений: 7
|
hitTest выпадающей части ComboBox
Здравствуйте!
Как заставить выпадающую часть ComboBoxа реагировать на hitTest? Вот для примера. |
|
|||||
Модрон-ветеринар
|
В принципе у комбобокса внутри есть некий мувик boundingBox_mc, вероятно как-то связанный с его границей.
Но можно ли с ним работать - неизвестно, хиттест на него не срабатывает. Решение только такое придумывается - проверять hitTest на область, ограниченную cbx._width и cbx._height - эти свойства вроде бы правильно отображают видимые размеры комбобокса при работе с ним.
__________________
Идите первым! Последний раз редактировалось mooncar; 15.08.2010 в 20:29. |
|
|||||
Регистрация: Sep 2008
Сообщений: 7
|
Да действительно показывает изменение в высоте, но только на открытие ComboBoxа. После его сворачивания показывает ту же высоту что и в развёрнутом состоянии.
Или я что-то не понимаю? |
|
|||||
Модрон-ветеринар
|
Да, поторопился я сказать по поводу "правильно отображают"...
Действительно, значение cbx._height после открытия комбобокса остается фиксированным, видимо, максимальным. Даже если обернуть комбобокс в мувик и использовать высоту последнего, она также после открытия остается той же самой. Идей больше нет. Разе что свой комбобокс создать, с предсказуемыми свойствами.
__________________
Идите первым! Последний раз редактировалось mooncar; 15.08.2010 в 22:54. |
|
|||||
Регистрация: Sep 2008
Сообщений: 7
|
Тогда может быть мой частный случай можно решить другим путём.
Вверху карты города, которая масштабируется колёсиком и перемещается нажатой левой кнопкой мышки присутствует список улиц в ComboBoxе. И вот когда список разворачивается, любые манипуляции с ползунком списка передаются также и на карту. Переставить список так чтоб он не пересекался с картой некуда. Кроме hitTestа пробовал в условиях масштабирования и перемещения отслеживать высоту ComboBoxа, но тогда после сворачивания списка из за того что высота не возвращается масштабирование и перемещение перестаёт работать. Пробовал ComboBoxу по клику подложить под выпадающую часть какой нибудь клип и потом отслеживать его. Но тогда список перестаёт разворачиваться, не помогает даже если назначить это событие родительскому клипу. Заранее огромное спасибо всем кто откликнется. |
|
|||||
Регистрация: Feb 2008
Сообщений: 560
|
Как вариант... периодически отрисовывать список в битмапдату и проверять через 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, функция управления картой не будет выполнять свои действия.
__________________
Идите первым! Последний раз редактировалось mooncar; 16.08.2010 в 02:03. |
|
|||||
Модрон-ветеринар
|
Вот пример.
На карте используем колесико для изменения масштаба. Как только открываем комбобокс, карта перестает реагировать на колесико. Закрываем - карта опять реагирует на колесико.
__________________
Идите первым! |
|
|||||
Регистрация: Sep 2008
Сообщений: 7
|
По приведённому примеру сделал изменения. Всё работает отлично.
Огромное спасибо. |
Часовой пояс GMT +4, время: 15:50. |
|
« Предыдущая тема | Следующая тема » |
|
|