У меня есть функция DrawPlaybook, которая прослушивает два события, одно событие mouseclick и одно настраиваемое событие.Flex 3 Customevent не отправляется
public function DrawPlaybook(...):void
{
//...... other stuff
panel.addEventListener(MouseEvent.CLICK,
function(e:MouseEvent){onClickHandler(e,this.panel)});
panel.addEventListener(CustomPageClickEvent.PANEL_CLICKED,
onCustomPanelClicked);
}
Я планирую вызвать пользовательское событие изнутри "onClickHandler", как это:
public function onClickHandler(e:MouseEvent,panel):void
{
var eventObj:CustomPageClickEvent = new CustomPageClickEvent("panelClicked");
eventObj.panelClicked = panel;
dispatchEvent(eventObj);
}
private function onCustomPanelClicked(e:CustomPageClickEvent):void {
Alert.show("custom click");
}
А вот определение класса CustomPageClickEvent:
package
{
import flash.events.Event;
import mx.containers.Panel;
public class CustomPageClickEvent extends Event
{
public var panelClicked:Panel;
// Define static constant.
public static const PANEL_CLICKED:String = "panelClicked";
public function CustomPageClickEvent(type:String){
super(type);
//panelClicked = panel;
}
// Override the inherited clone() method.
override public function clone():Event {
return new CustomPageClickEvent(type);
}
public function getPanelSource():Panel{
return panelClicked;
}
}
}
Вопрос заключается в том, что «onCustomPanelClicked» никогда не запускается вообще. Пожалуйста, дайте мне знать, если вы заметите что-то, что я пропустил.
Изменение прослушивателя событий на: this.addEventListener (CustomPageClickEvent.PANEL_CLICKED, onCustomPanelClicked); работает. Большое спасибо за вашу помощь. – user267530