想象一下,我们有一个对象调度某个事件,该对象应该对此事件执行一些操作。抓住这个活动的正确方法是什么?我可以直接在我的对象中听这个事件,还是应该让这个事件通过EventMap? 示例:我有一个带窗体的弹出窗口。在提交表单时,我将向远程服务器发送请求并关闭此弹出窗口。在没有将自定义事件发送到EventMap的情况下执行弹出窗口关闭是否在意识形态上是否正确?感谢。
答案 0 :(得分:2)
至于我个人而言,我更喜欢负责创建视图或弹出窗口之类的对象也应该对它们的破坏负责。而且我更喜欢使用Mate来解决一些跨应用程序任务,尤其是客户端 - 服务器通信。所以我更喜欢在组件级别上使用普通的旧ActionScript事件处理。如果某个组件创建了弹出窗口,它可以监听一些提交事件并破坏弹出窗口。
另一种情况,如果弹出是由Mate本身创建的(我的意思是在事件地图中)。在这种情况下,我认为在Mate处理程序中销毁窗口没有问题,它处理一些提交事件并对服务器执行请求并立即销毁窗口。
但无论如何你应该使用简单的规则发送Mate事件(我的意思是由事件映射处理的事件):不要发送一些低级事件。您应该将它们转换为反映相应应用程序级别的业务逻辑的事件。在您的情况下,您不应该考虑将表单提交为两个操作:请求服务器和关闭窗口。从窗口的角度来看,它只是表单提交,窗口不应该关心服务器请求或从SharedObject读取数据,甚至是某种模型。因此窗口应该调度提交事件,并且Mate映射应该处理此事件并在同一个处理程序中产生请求和窗口销毁。这样,您可以在不知道视图是弹出窗口还是在本机AIR窗口中的情况下使用视图。只需调整你的伴侣活动地图。
不要忘记Mate的地图可以是分层的。因此,您可以划分处理业务逻辑事件的级别。
答案 1 :(得分:1)
是的,这是正确的,你不需要为Closing窗口发送事件, 因为事件的主要目的是告知外部/父母某些事情已完成/改变