现在的位置: 首页 > 综合 > 正文

最简单的Flex框架Cairngorm实例,绝对容易

2012年09月28日 ⁄ 综合 ⁄ 共 1478字 ⁄ 字号 评论关闭
Cairngorm框架Adobe自己的框架,严密贴合As3的事件机制。用起来相当方便。简单介绍一下。
Examples.mxml文件-----是主文件。
ReadDataDelegate----充当外部连接的代理,主要用来与外界交互,包括任意的交互模式。
ReadDataCommand---做为任意事件侦听后调用的类。
MainController----主控制器,用来放置侦听器的。
ReadDataEvent---事件体,继承了CairngormEvent;
IDataResponder---ReadDataDelegate和ReadDataCommand应用的接口类。
MainModel----获取结果后的中心存储器;
CheckBoxGroup.mxml----组件体。
ReadDataSendVo----声明的对象。
最后还有3个XML,用来调用。

1、先来了解一下这个案例的效果
三的多选框。多选框1调用checkXml0.xml里面的data值。多选框2调用checkXml1.xml里面的data值。多选框3调用checkXml2.xml里面的data值。最后面的和值是被选中的多选框对应的xml里面Data值的总和。
2、了解一下工作流程
    先在主界面中放入两个组件,一个是三个多选框为一体的组件,一个是Label组件,Label组件的text动态绑定主存储器中的MainModel里的SumData。也就是说sumData变化,label显示的文本就变化。
   再来看事件。当鼠标点击任意一个多选框时,派发事件,带2个参数,一个是要访问的Xml路径,一个是点击后多选框是选择还是未选择。
   事件派发后,MainController会接收。这里的addCommand是放置侦听器的,类似于我们用的addEventListener,只不过addEventListener是在侦听后访问一个方法,而addCommand是在侦听后访问一个类。
   收到事件后,访问了ReadDataCommand,这里注意,当访问这个类时,第一时间访问到的方法是execute方法,同时把事件带进来。execute方法是接口Icommand的,为了方便与ReadDataDelegate连接,我们还加入了IDataResponder。用来将返回结果和访问错误结果返回。初始化的时候我们新建了ReadDataDelegate,在execute中我们调用了ReadDataDelegate中的连接方法。
   ReadDataDelegate做连接,并且把返回值传递回ReadDataCommand,而ReadDataCommand当中将争取的值运算后返回给MainModel。
   好了,当MainModel接收到获取了值后主界面中的Label就更新了。
3、使用Cairngorm的任意位置侦听。
  我们通常情况下都是任意位置抛出事件而有Controller部分侦听然后让不同的Command执行。但是有的时候我们只不过想做点小的应用,不想去执行某个Command或者说我们想做点界面应用侦听。那么我们还有一个方法:任意位置新建侦听器 例如:var _dispatch:CairngormEventDispatcher=CairngormEventDispatcher.getInstance()
_dispatch.addEventListener(事件,方法)。这个CairngormEventDispatcher类是一个单例,我们可以任意位置新建后,侦听它,用它来调用我们所需要的方法。

抱歉!评论已关闭.