Apache flex 理解动作脚本中的cairngormevents
我有一个下拉列表,由带有caringorm事件的web服务异步填充。我需要知道此事件何时完成,以便设置所选组合框行。数据已填充,但我不知道如何订阅此事件。有人知道热做这件事吗 此代码似乎不起作用 CairngormEventDispatcher.getInstance().addEventListener(SomeEvent.GETDATA,formLoaded); 新建SomeEvent(SomeEvent.GETDATA).dispatch() 受保护函数formLoaded(事件:CairngormEvent):无效{Apache flex 理解动作脚本中的cairngormevents,apache-flex,actionscript-3,flex4,Apache Flex,Actionscript 3,Flex4,我有一个下拉列表,由带有caringorm事件的web服务异步填充。我需要知道此事件何时完成,以便设置所选组合框行。数据已填充,但我不知道如何订阅此事件。有人知道热做这件事吗 此代码似乎不起作用 CairngormEventDispatcher.getInstance().addEventListener(SomeEvent.GETDATA,formLoaded); 新建SomeEvent(SomeEvent.GETDATA).dispatch() 受保护函数formLoaded(事件:Cair
Alert.show(“Woot”);}Cairngorm是一种MVC微体系结构 首先:这里是cairngorm 2.2.1的文档 CairngormEvent通过FrontController类的addCommand方法与ICommand关联。 因此,每当执行SomeEvent(SomeEvent.GETDATA).dispatch()时,实际上是在执行控制器与SomeEvent.GETDATA关联的命令的execute()方法 倾听CairngormEventDispatcher的事件不是最佳做法。 在任何情况下都不应该调用CairngormEventDispatcher,该类的存在是为了使整个微体系结构正常运行 <>你的视图(组合框)应该对模型(WebService的结果)自动作出反应(或者通过中间的其他对象(如PuReCVC))< /P> 我建议使用cairngorm快速解决您的问题:
- 将webservice注册到服务定位器中,以便对其进行应用程序级引用(为此,只需创建一个扩展ServiceLocator的mxml组件,并将httpservice或webservice标记放在其中,然后为其分配一个id)
- 创建模型定位器(存储从web检索的数据的类),并将要在组合框中显示的数据列表标记为[Bindable]
- 识别与SomeEvent.GETDATA和
- 在execute方法中调用在服务定位器中注册的服务
- 实现IResponder接口(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/IResponder.html)为了处理服务的结果(在execute方法中将您的命令注册为服务的响应者)
- 在result方法中,解析从服务器返回的数据,然后将它们存储到模型定位器中(可以通过单例访问器轻松检索)
- 在视图(包含组合的mxml文件)中,将组合数据提供程序绑定到模型定位器数据列表(前面几行已设置为可绑定),以使其对模型中发生的更改作出反应