MessageHandler在各种标签中捕获 - Flex

时间:2013-06-12 13:29:47

标签: actionscript-3 flex flex4.5 cairngorm parsley

该架构基于以下框架的使用:Flex,Cairngorm和Parsley。

我在popuppnel:PopupPanel中使用带有“AdicionarItemVendaMercadoriaEvent”事件的调度程序。

我使用注入Form.mxml的FormPM.as中的[MessageHandler]捕获事件。 在Form.mxml中,我有一个mx:TabNavigator,每个选项卡都在一个s:NavigatorContent中。

事实证明,当有多个打开的标签mx:TabNavigator时,将在所有标签的所有表单中捕获已分派的事件。

正常操作是捕获分派PopupPanel的选项卡的唯一事件,而不是所有选项卡。

请问,有任何解决这个问题的建议吗?

我很感激帮助。

1 个答案:

答案 0 :(得分:0)

如何使用直接函数回调?

创建PopUpPanel时,传入要在弹出窗口关闭时执行的函数回调。您只需调用该函数,而不是使用事件。即。

FormPM内部:

public function showPopup():void
{
    var popup:PopUpPanel = new PopUpPanel();
    popup.onCompletion = handleResult;
    PopUpManager.addPopUp(popup, ...);
}

private function handleResult(someData:*):void 
{
   // My popup has completed.. what do I want to do with the result.
}

您可能需要考虑Spicelib 3.0命令框架,并命令弹出面板,然后将错误/成功回调添加到:http://www.spicefactory.org/parsley/docs/3.0/manual/?page=commands&section=intro