我在论坛帖子和教程中阅读了很多内容,但是仍然无法理解事件和事件监听器。我有一个非常简单的例子,但是我无法使它正常工作。
我在repeater中有一个自定义对象的arrayCollection,当其中一个对象被点击时,我想要另一个组件显示与该对象相关联的数据。
这是我的代码,但是侦听器从未响应(调度程序似乎正在工作,因为创建了新事件,并且我可以看到具有正确输出的跟踪)。我怀疑,我在错误的对象上调用addEvent Listener,导致侦听器无效。我的理解是,将显示对象数据的对象应该有事件侦听器,并监听所有此类事件,但也许我误解了。
我的自定义事件:
public class SelectObjectEvent extends Event
{
public function SelectObjectEvent(customEventString:String, myObject:customObject)
{
super(customEventString, true, false);
trace(customEventString+" "+myObject);
}
}
}
我的自定义对象有以下函数,该函数在点击时被调用:
public function selectObject(myObject:customObject):void
{
dispatchEvent(new SelectObjectEvent("OBJECT_SELECTED", customObject));
}
我想展示所选对象的组件具有以下构造函数:
public function SelectedObjectDisplayClass()
{
addEventListener("OBJECT_SELECTED", this.showObject)
}
public function showObject(event:Event):void
{
trace("Show object: "+event);
}