[Flex 3] PopUpButton.closeOnActivity
У Flex є такий компонент PopUpButton. Поведінка його схожа на ComboBox, тільки ми маємо можливість задати будь-який компонент який відкриється при натисканні. Але маємо неприємність з тим, що при натисканні на щойно відкритий компонент він зразу зачиняється. Тобто ми не можемо використовувати, наприклад, List з встановленим allowMultipleSelection=true та вибрати декілька елементів в List. У компонента PopUpButton є потрібна нам властивість:
/**
* @private
* Storage for the closeOnActivity property.
*/
private var _closeOnActivity:Boolean = true;
/**
* @private
* Specifies popUp would close on click/enter activity.
* In popUps like Menu/List/TileList etc, one need not change
* this as they should close on activity. However for multiple
* selection, and other popUp, this can be set to false, to
* prevent the popUp from closing on activity.
*
* @default true
*/
private function get closeOnActivity():Boolean
{
// We are not exposing this property for now, until the need arises.
return _closeOnActivity;
}
/**
* @private
*/
private function set closeOnActivity(value:Boolean):void
{
_closeOnActivity = value;
}
Але як бачите вона є private
Рішення:
Потрібно зупинити всі MouseEvent.Click від нашого PopUp’у :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:PopUpButton>
<mx:popUp>
<mx:List id="list" allowMultipleSelection="true">
<mx:dataProvider>
<mx:Array>
<mx:String>Один</mx:String>
<mx:String>Два</mx:String>
<mx:String>Три</mx:String>
<mx:String>Чотири</mx:String>
<mx:String>П'ять</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:List>
</mx:popUp>
</mx:PopUpButton>
<mx:creationComplete>
<![CDATA[
list.addEventListener(MouseEvent.CLICK, listClickHandler, true);
]]>
</mx:creationComplete>
<mx:Script>
<![CDATA[
private function listClickHandler(event:MouseEvent):void
{
event.stopImmediatePropagation();
}
]]>
</mx:Script>
</mx:Application>
Жовтень 13, 2008 в 20:48
Очень занятно. Было интeрeсно почитать. Спасибо.
Жовтень 30, 2008 в 18:05
Спасибо за Ваш труд!!
Жовтень 31, 2008 в 11:27
Не понимаю причину такого ажиотажа. Ничего нового и мнения разные.
Жовтень 31, 2008 в 12:06
Занятно. Подпишусь-ка я на RSS пожалуй
Жовтень 31, 2008 в 12:52
Просто замечательно - очень интересные мысли
Листопад 2, 2008 в 10:21
Я заметил, некоторые блоггеры любят провоцировать читателей, некоторые даже сами провокационные комменты оставляют сами у себя на блоге
Листопад 8, 2008 в 11:47
А как вы смотрите, чтобы завести на блоге раздел «самые горячие обсуждения» ну или типа того. Там можно будет комментировать наиболее горячие статьи вашего блога…
Листопад 8, 2008 в 17:30
Как там у вас с погодой? Давно не писали
Листопад 8, 2008 в 20:36
Оценка 5, базару ноль
Листопад 9, 2008 в 0:47
Круто, спасибо!
Листопад 9, 2008 в 2:25
Можно ли взять одну картинку с Вашего блога? Очень понравилась. Линк на Вас есстественно поставлю.
Листопад 9, 2008 в 13:27
А Вы на заказ не пишите?
Листопад 10, 2008 в 5:33
Такой пост и распечатать не жалко, редко такое найдешь в инете, спасибо!
Листопад 10, 2008 в 6:13
Неоднократно доводилось читать подобные посты на англоязычных блогах, но это не значит что ваш пост мне не понравился
Листопад 10, 2008 в 6:14
Спасибочки за материалы! Помогло для написание курсовой.
Листопад 10, 2008 в 6:18
Под впечатление от вышесказанного, благодарю за пост.
Листопад 10, 2008 в 6:19
Очень познавательно. Спасибо.
Листопад 10, 2008 в 7:00
Побольше б таких штук
Листопад 10, 2008 в 7:15
А что, если завести у себя на блоге раздел «самые горячие обсуждения» ну или что-то подобное. Там думаю, нужно будет комментировать наиболее интересные темы вашего блога…
Листопад 11, 2008 в 22:37
Без преувеличения можно сказать, что пост тему раскрыл на все 100.
Листопад 11, 2008 в 22:56
Где-то я это уже видел… А если по теме то спасибо.
Листопад 12, 2008 в 14:10
Мне нравятся Ваши посты, заставляет задуматься…
Листопад 12, 2008 в 15:26
полностью поддерживаю, такие же мысли были.
Листопад 19, 2008 в 2:27
Не понимаю причину такого ажиотажа. Ничего нового и мнения разные.
Листопад 20, 2008 в 13:20
Занятно. Подпишусь-ка я на RSS пожалуй
Листопад 20, 2008 в 19:14
Вот это пост! Сильно. Спасибо.
Листопад 25, 2008 в 10:18
Спасибо. То, что нужно ))
Листопад 25, 2008 в 14:34
блин, почему так мало хороших блогов осталось? этот вне конкуренции.
Листопад 29, 2008 в 7:48
А король-то голый! Вдумчивая статья, спасибо!
Грудень 1, 2008 в 22:57
Отличная статья Спасибо огромное
Грудень 4, 2008 в 1:44
что-то в этом есть, безусловно