Я хотел знать, есть ли способы использовать dispatchEvents с пользовательскими вызовами функций событий, не создавая экземпляр функции в форме xml, но делая это в сценарии.Я пытаюсь сделать так, чтобы разработчик использовал кнопку моего пользовательского компонента, но добавил свою собственную функцию к тому, что уже добавлено в мой собственный вызов события click.так что в данном случае он / она хочет добавить собственную функцию проверки этого события клика.Один из способов - создать экземпляр в моем компоненте в XML-схеме.Например, у меня это где:
У меня есть компонент mxml под названием DialogWindow.mxml и внутри у меня есть
<mx:Metadata>
[Event(name="cancBtnClick", type="flash.events.Event")]
[Event(name="okBtnClick", type="flash.events.Event")]
</mx:Metadata>
и в моем скрипте в DialogWindow.mxml я создал кнопку с щелчкомсобытие с именем cancelAction (event);
_buttonCancel = new Button();
_buttonCancel.label = "Cancel";
_buttonCancel.addEventListener("click", cancelAction);
_buttonCancel.enabled = true;
В функции «cancelAction» я добавляю dispatchEvent к cancBtnClick, поскольку это будет пользовательская функция.
protected function cancelAction(event:Event):void {
dispatchEvent(new Event("cancBtnClick"));
PopUpManager.removePopUp(this);
}
При получении компонента DialogWindow.mxml из другого компонента, я могу использовать это утверждение, где myFunction имеет место cancBtnClick в функции cancelAction.
// from TestButton.mxml
<cmp:DialogWindow cancBthClick="myFunction()" />
Вышеприведенное работает нормально, но что если я хочу вызвать его с помощью вызова производного класса вскрипт.например,
public var dialogW:IFlexDisplayObject = null;
(dialogW as DialogWindow).cancBtnClick = "myFunction"; // this is an instance of DialogWindow
При попытке этого, конечно, нет cancBtnClick.Так что я знаю, что не правильно реализую это.Если вы знаете, как я могу изменить свой код, чтобы я мог сделать выше.Я был бы очень признателен.Заранее спасибо.