Обработчик события передачи Flex и добавьте его в динамически создаваемый объект внутри itemrenderer - PullRequest
0 голосов
/ 27 мая 2011

У меня есть Tree, который имеет itemRenderer.На itemRenderer, управляемом условиями XML, объекты создаются динамически и добавляются как узлы в узлы.Эти новые объекты должны запускать обработчик событий (в основном некоторые события щелчка).

  • Как передать обработчик событий в дерево, а затем в динамически созданные новые объекты внутри itemRendere?

Что-то вроде:

<mx:Tree x="534" y="49" newObjectsOnClick="newObjectsOnClickHandler">

1 Ответ

1 голос
/ 27 мая 2011

Использовать всплывающее окно для событий, отправляемых от средств визуализации элементов.

Создайте пользовательское событие следующим образом:

public class MyEvent extends Event
{
    public static const SOME_ACTION_PERFORMED:String = "someActionPerformed";
    public function MyEvent(type:String)
    {
        // The second parameter is for bubbling!
        super(type, true, false);
    }

    override public function clone():Event
    {
        return new MyEvent(type);
    }
}
}

Тогда в рендерере:

dispatchEvent(new MyEvent(MyEvent.SOME_ACTION_PERFORMED));

И в классе, который содержит ваш Tree:

private function onInit():void
{
    addEventListener(MyEvent.SOME_ACTION_PERFORMED, someActionHandler);
}

private function someActionHandler(event:MyEvent):void
{
    // Perform necessary actions here
    …
    // Then stop bubbling
    event.stopImmediatePropagation();
}
...