ItemClick Событие в гибком комбинированном списке - PullRequest
0 голосов
/ 01 сентября 2011

Кто-нибудь знает, есть ли способ перехватить событие ItemClick во Flex ComboBox (или что-нибудь подобное). Может быть, есть какой-то трюк .. :) Я понимаю, что могу настроить его, но это не подходит для моего случая.

Спасибо за ваше время:)

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Как вы можете видеть в mx:ComboBox источниках, функция, создающая выпадающий список, является частной, слушатель ITEM_CLICK является частным, а сам список также является частным:

private var _dropdown:ListBase;

private function getDropdown():ListBase
{
        // ...

        _dropdown = dropdownFactory.newInstance();

        // ...

        _dropdown.addEventListener(ListEvent.ITEM_CLICK, dropdown_itemClickHandler);

        // ....
}

private function dropdown_itemClickHandler(event:ListEvent):void
{
    if (_showingDropdown)
    {
        close();
    }
}

Так что вы даже не можете продлить ComboBox.

Единственная открытая вещь - это dropdownFactory, которую теоретически можно переопределить, чтобы каким-то образом зарегистрировать созданный выпадающий список или создать расширенный список. Но проблема, которую я вижу, состоит в том, что ComboBox не является родителем выпадающего списка - PopupManager. Это может затруднить диспетчеризацию (всплывающих) событий.

1 голос
/ 01 сентября 2011

Я думаю, что следующий документ будет полезен

Событие ItemClick в flex List

0 голосов
/ 25 января 2012

Я нашел это решение. Я просто хочу выпадающий список искры с событием itemClick и без опции выбора элемента (не показывать метку выбранного элемента на кнопке)

[Event(name="itemClick", type="mx.events.ItemClickEvent")]

public class ItemClickDropDownList extends DropDownList
{

    public function ItemClickDropDownList()
    {
        super();
    }

    override public function closeDropDown(commit:Boolean):void
    {
        super.closeDropDown(commit);

        var e:ItemClickEvent = new ItemClickEvent(ItemClickEvent.ITEM_CLICK, true);
        e.item = this.selectedItem;
        e.index = this.selectedIndex;
        dispatchEvent(e);

        //Deselect item
        this.selectedIndex = -1;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...