Я много читал на форумах и в учебных пособиях, но я все еще не могу обернуть свои мысли вокруг событий и слушателей событий. У меня есть довольно простой пример, но я не могу заставить его работать.
У меня есть 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);
}