我有一个Tree
,它有一个itemRenderer
。在itemRenderer
上,在XML条件的驱动下,对象被动态创建,并作为子节点添加到节点中。这些新对象将触发一个事件处理程序(主要是一些点击事件)。
- 如何将事件处理程序传递给树,然后再传递给
itemRendere
中动态创建的新对象
类似于:
<mx:Tree x="534" y="49" newObjectsOnClick="newObjectsOnClickHandler">
对从项目渲染器调度的事件使用事件冒泡。
因此,创建一个自定义事件如下:
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();
}