惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
人人都是产品经理
人人都是产品经理
月光博客
月光博客
V
V2EX
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
宝玉的分享
宝玉的分享
雷峰网
雷峰网
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
博客园 - 聂微东
博客园 - 司徒正美
博客园 - 【当耐特】
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志

博客园 - 唐朝

SqlServer 导出表结构到Word struts2中的jar文件说明 Android的PackageManager和ActivityManager liferay+portlet+开发实例 (转)android应用自适应多分辨率的解决方法 Flex4自定义分页组件 Flex嵌入到HTML中切换焦点不能输入中文和遮盖DIV的问题 Cairngorm的工作流程 四种方式实现Flex页面跳转 Flex4之DataGrid四个的示例【客户端和服务器端】 Flex4表单验证【重点说明comboBox验证】 Flex 4之fx、mx以及s命名空间解说 Flex4之通过iframe嵌入html网页 Flex4之在Aert提示框中加入超链接 Flex4之皮肤定制【Skin类和Skin类】 Flex4之四种事件处理方式 Flex4之简单菜单制作 Flex4之使用ActionScript构建组件 Flex4之元数据标签使用
最简单的Flex框架Cairngorm实例,绝对容易
唐朝 · 2012-02-25 · via 博客园 - 唐朝

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类是一个单例,我们可以任意位置新建后,侦听它,用它来调用我们所需要的方法。