Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Robotlegs Flex-如何处理creationComplete之后初始化的中介?_Apache Flex_Frameworks_Robotlegs - Fatal编程技术网

Apache flex Robotlegs Flex-如何处理creationComplete之后初始化的中介?

Apache flex Robotlegs Flex-如何处理creationComplete之后初始化的中介?,apache-flex,frameworks,robotlegs,Apache Flex,Frameworks,Robotlegs,我试图使用Robotlegs框架构建一个Flex应用程序,但不知道如何处理中介的创建(->调用onRegister),只在视图组件的creationComplete事件之后 我的应用程序在启动时加载几个XML文件,从这些文件创建模型,然后用数据发送事件。 问题:在启动时“加载”嵌入/本地文件时,模型事件在添加中介侦听器之前被调度,尽管它们在主上下文中触发初始数据加载之前被映射 除了在mediators onRegister中手动调度事件外,是否有人将机器人腿与flex结合使用,并提供了一种“更干

我试图使用Robotlegs框架构建一个Flex应用程序,但不知道如何处理中介的创建(->调用onRegister),只在视图组件的creationComplete事件之后

我的应用程序在启动时加载几个XML文件,从这些文件创建模型,然后用数据发送事件。 问题:在启动时“加载”嵌入/本地文件时,模型事件在添加中介侦听器之前被调度,尽管它们在主上下文中触发初始数据加载之前被映射

除了在mediators onRegister中手动调度事件外,是否有人将机器人腿与flex结合使用,并提供了一种“更干净”的解决方法?这样一来,“自动”调解就不再是自动的了

编辑:
最小示例代码:

上下文:
覆盖公共函数启动():void{

mediatorMap.mapView(EditorMenu,editormenummediator);

commandMap.mapEvent(ContextEvent.STARTUP,LoadConfigurationCommand);

dispatchEvent(新ContextEvent(ContextEvent.STARTUP));

}

LoadConfigurationCommand:
[Inject]公共var配置服务:IXMLLoader
重写公共函数execute():void{

configurationService.loadXML();

}

配置服务:
公共函数loadXML(){

跟踪(“加载的xml”);

调度(新的XMLLoadedEvent(XMLLoadedEvent.CONFIGURATION\u LOADED,result));

}

EditorNuMediator:
重写寄存器()上的公共函数:void{

跟踪(“注册菜单”);

addContextListener(XMLLoadedEvent.CONFIGURATION_-LOADED,handleXmlLoaded,XMLLoadedEvent);
}


跟踪“menu onregister”发生在跟踪“xml loaded”之前,因此在调度XmlLoadedEvent时中介没有监听。

我不擅长机器人腿(我实际上是欧芹成瘾者),但是,如果您使用的是中介模式,这意味着您的中介可以直接访问视图本身。为所有视图创建一个接口类,该类具有一个
init
公共函数,您的中介可以在onRegister之后调用该函数


也许机器人腿有另一种方法来处理元数据、事件或其他东西,但这仍然是有效的。

我通过抓取和控制操作顺序来实现这一点。这里的另一种方法是添加监听器,但也注入模型并在onRegister中检查它的数据。任何一种方法都应该让你站在比赛条件的前面。

也许我的问题有点恼人——从我的调解人那里访问视图就可以了。我正在做的是:将视图映射到中介->在中介onRegister中为Event.dataloaded事件添加eventlistener->加载(本地)数据,将其解析为模型并分派Event.dataloaded。但是视图没有注意到该事件,因为呈现过程花费的时间太长,并且在调度event.dataloaded之后调用onRegister。可以通过使用RelaxedEventMap(为我存储事件)或手动请求从views onRegister加载初始数据来解决此问题。。。。。。对于每个需要加载一些初始数据的视图,我必须这样做,以确保它们都准备好接收事件。但这感觉不对!呃,可能会显示一些代码?帮帮我,我完全不知道。啊,现在我明白了。我要解决这个问题的方法是,将xml添加到上下文知道它的模型中,然后将它注入到中介中。这有意义吗?在上下文中创建一个模型,将其注入到服务器保存到其中的服务中,并将相同的模型注入到中介中。这是有意义的,但将模型注入到中介中是我想要避免的简单方法。它会导致紧密耦合,而且往往会在中介中放入太多的逻辑,因为直接访问和操作模型比编写命令和分派事件更方便。这至少是我在robotlegs文档和官方论坛上读到的,我对这个框架还没有真正的经验。状态机似乎正是我想要的——完美!到目前为止,我一直在努力避免将模型注入中介体。很多时候,我从注入(耦合)中介体和模型/服务开始,并根据需要进行抽象,但我总是使用状态机来引导一个非常重要的应用程序。我是个控制狂;)