У меня есть класс ActionScript MyClass, который расширяет NavigatorContent. Я создаю экземпляр класса как пользовательский компонент MXML NavigatorContnent для компонента Accordion. В MyClass есть компонент Button, к которому я пытался подключить прослушиватель событий. Я хочу, чтобы событие всплыло, чтобы у меня был обработчик в компоненте Accordion.
MyClass
package comp
{
import flash.events.Event;
import flash.events.MouseEvent;
[Event(name="selectEvent", type="flash.events.Event")]
public class MyClass extends NavigatorContent
{
public function MyClass()
{
super();
btnSelect.addEventListener(MouseEvent.CLICK, selectClickDispatcher);
}
public function selectClickDispatcher(event:MouseEvent):void
{
event.currentTarget.dispatchEvent(new Event("selectEvent",true));
}
}
}
Отсюда у меня есть экземпляр компонента, вложенный в Аккордеон. Я почти уверен, что проблема в этом определении класса, потому что, когда я устанавливаю точку останова в selectClickHandler, код не ломается. В случае, если я ошибаюсь, я опубликую остальные компоненты.
Пользовательский компонент с именем MySubComp.mxml
<comp:MyClass
...I have a few more spark components here and nothing else...
/>
Аккордеон
<mx:Accordion>
<fx:Script> //omitted CDATA tags to save space
protected function selectEventHandler(event:Event):void
{
Alert.show("Value Selected");
}
</fx:Script>
//custom components are in the navs package
<navs:MySubComp selectEvent = "selectEventHandler(event)"/>
</mx:Accordion>