Flex_大师之路学习笔记
flash 的三种运行环境 | flash player air flash lite | 企业有年会,其实我的家庭也应该有年会。 像理企业一样理家庭! 在企业里工作不好,我觉得在家里很可能是一样的! | |||
swf文件在html中的MIME类型是 | application/x-shockwave-flash | ||||
swf文件可以加载的文件格式内容有 | mp3 GIF PNG FLV XML | ||||
flex 核心 swc文件 | datavisualization.swc 所有的charting组件 datavisualization_rb.swc 图表组件需要的绑定资源 rpc.swc rpc服务:soap rso rest-style rpc_rb.swc 数据服务所需要的资源绑定 fds.swc 只供LiveCycle Data Service 的开发者使用 fds_rb.swc 上面那功能所需要的资源 flex.swc flex框架 framework.swc flex框架中的所有组件 framework_rb.swc flex框架中的所有组件所需要的资源 playerglobal.swc Flash 类库 flash.utils flash.net flash的基本数据! | ||||
playerglobal.swc要能自己安装 | |||||
f3 | |||||
alt + / | |||||
ctrl O | |||||
ctrl shift G | |||||
ctrl / | |||||
ctrl shift p | |||||
-keep-generated-actionscript | |||||
flex中三种调用as的方式 | 内联方式 标签内联 <mx:Script> | ||||
事件旅程并不包括从根节点Stage对象到发生事件的对象之间的所有节点,而只涉及发生事件的对象本身和它的父容器。 | |||||
preinitialize preinitialize initiallize initalize creationComplete updateComplete creationComplete updateComplete 最终是applicationComplete | |||||
利用[Event]元数据,开发者可以为组件定义事件。编译器能够把这些自定义的事件识别为MXML标签属性 | |||||
Event的子类里的构造函数应该如何写!? | |||||
实验:红绿灯,这个要反复去默写 1.LightConsole里面用metadata给其自身定义一个event 2.在主文件里,当LightConsole触发了event的时候,侦听器要有一个参数event.这个不会,不懂,为什么。 | 共400页 8小时 还有300页 100页 三个小时 | ||||
有两帧 | 第一帧负g责初始化,包含了SystemManager Preloader DownloadProgressBar 和一些帮助类.当SWF的所有内容下载完毕,SystemManager会触发enterFrame事件,进入第二帧,并触发其它一系列启动序列事件,最终完成mx.core.Application实例. enterFrame事件会以帧频不断触发,因此Flash Player会不断重画第二帧 第二帧,则是真正要执行的应用,包含了flex应用的代码,字体等嵌入资源。 | ||||
绑定方式有两种 | 1.使用{} 2.使用<mx:Binding source=“src.text” destination="destination.text"/> | ||||
组件分为三大类 | container navigators controls | ||||
容器有哪些 | HBox VBox Canvas Panel Form Tile Grid TitleWindow ControlBar | ||||
导航有哪些 | NavBar: LinkBar ButttonBar ToggleButtonBar TabBar menu: MenuBar 堆叠类: Accordian ViewStack TabNavigator | 要去下载那个本地版本的explorer. 或者从我的本地找! | |||
工具控件 | 文本类:Label Text TextInput TextArea RichTextEditor 按钮类: Button RadioButton RadioButtonGroup LinkButton PopUpButton. 选择类: ComboBox ColorPicker DateField 数据展示类: List HorizonalList TileList Tree DataGrid OLAPDataGrid AdvancedDataGrid . | flextour 去把那些组件背下来! | |||
用[Bindable(event ="")]元数据定义方法事件绑定 | 在setter中发事件,在get上面绑定事件 | ||||
事件是组件间通讯的最佳信使 | |||||
<mx:Image source = ""/> | |||||
button的皮肤 | <mx:Button skin =
<mx:Button
skin="
@Embed('assets/pic.gif')
" x="
100
" y="
100
" buttonMode="
true
"
/>
| ||||
VDividedBox
|
backgroundColor="
black
"
liveDragging="true"
| ||||
Panel的三个特别属性 | title titleIcon status | ||||
TitleWindow的一个属性。一个事件
|
showCloseButton close
| ||||
PopUpButton的一个属性,一个方法
| popup 它的值必须是一个组件, 一个方法是close() | ||||
在Flex中创建xml文件其实很方便 | |||||
ScaleContent |
scaleContent: Boolean []
一个标志,指示是缩放内容以适应控件大小还是调整控件大小使其适应内容大小。如果为 | ||||
Repeater的用法还得练 | |||||
HttpService我没有实验成功 | |||||
坐标 | 全部 局部 内容 | ||||
与父类的边界 | left right top bottom | ||||
与子类的边界 | paddingLeft paddingRight paddingTop paddingBottom | ||||
关于显示 | visible includeInLayout | ||||
ScrollPolicy | auto 当显示滚动条的时候,并不会调整所有者的尺寸,所以滚动条会挡住所有者的内容 off 表示即使子项超出所有者的尺寸,也不显示滚动条 on 显示滚动条,且当所有者的尺寸也会增大,以容纳滚动条 | ||||
布局的原理 | 大管家是LayoutManager 三阶段: 提交: 首先调用validateProperties 该方法从最外层容器开始遍历列表中的对象,逐一调用每个对象的validateProperties()方法,每一次都会调用commitProperties方法处理对象的属性,在这个阶段,允许组件在进入度量和布局之前,根据设置的属性进行自我的调整 度量 : 开始于validateSize()方法,由内向外调用。 每一次调用 measure() 布局: validateDisplayList() 由外向内 每一次会调用updateDisplayList() 方法 | ||||
基本的约束样式 ,对于父容器的 | left right top bottom horizontCenter verticalCenter | ||||
基于约束行,和约束列的布局, | 这个很高级,没有实验成功 | ||||
Form FormItem TextInput的配合 | |||||
RadioButtonGroup 里的RadioButton 要有groupName. | |||||
Accordion | 什么效果我得记下来 | ||||
borderColor
| blue red black white 都有效 | ||||
所有容器都有一个icon属性 和 label mx.core.container |
这样就可以直接显示titelIcon
[Embed("assets/btn.png")]
private const titleIcon:Class; icon="{titleIcon} | ||||
creationCompleteEffect的值有
|
WipeDown WipeRight WipeLeft Dissolve
如果希望每次都播放特效:
则可以用hideEffect 和 showEffect
| ||||
随着各窗口打开和被打开,各窗口的header上的状态随着变化 | 1.Accordian headerRenderer = views.DemoHeader 2.在DemoHeader中 请看as_code_大师之路 | ||||
ViewStack | 1.没有管理子容器功能的导航。要借助于viewStack来实现功能! 2.方法一,设置selectedIndex selectedChild 3.方法二 ,把ViewStack作为LinkBar TabBar ToggleButtonBar容器的dataprovider | ||||
第十一章 样式 | |||||
1.CSS | cascading Style Sheets 最新版本是CSS2.0 | ||||
2.两类选择器。 type是类名。 class是点号命名的 | |||||
3.样式有两种写法。 | 连线 和 骆驼法。 | ||||
4.[Style]元数据 来为组件自定义样式属性 | |||||
5.Application global | Application 全局的。可继承的样式 global 如有不可继承的。global就会把其覆盖 | ||||
6.设置样式三种方法 | 内联 <mx:Style> 外部css文件 | ||||
7 type class的继承 | Class的继承,体现在容器内子项组件继承容器的样式上,而对于type,体现在子类继承父类的样式。 | ||||
8.嵌入图像式皮肤 | 比如Button有8个状态: upSkin overSkin downSkin disabledSkin selectedOverSkin selectedDownSkin selectedUpSkin selectedDisabledSkin | ||||
9.图片的9切片缩放 | .scaleStyle{ backgroundImages:Embed("assets/arrowCorner.png"),scaleGridTop = "30",scaleGridLeft = "30",scaleGridBotton = "150",scaleGridRight = "240" } | ||||
10.运行时加载样式和皮肤 | 1.实际上mxml编译器会把选择器都生成相对应的CSSStyleDeclaration 2.CSSStyleDecalration 能够进一步操作选择器所包含的样式定义。 getStyle(styleProp) setStyle(styleProp,newValue) clearStyle(styleProp) 3. | ||||
11.直接把某个.Class选择器改了并应用上 |
myContainerStyle =
new
CSSStyleDeclaration(
'.myStyle'
);
myContainerStyle.setStyle(
"fontStyle"
,
"italic"
);
myContainerStyle.setStyle(
"backgroundColor"
,
"#e7e7e7"
);
myContainerStyle.setStyle(
"font"
,
"Arial"
);
myContainerStyle.setStyle(
"fontSize"
,
"20"
);
| ||||
12.StyleManager | 可以用他来获取应用的当前样式,加载新的样式,并应用新的样式。 | ||||
13.关于上面的来个大总结 | 1.StyleManager.setStyleDeclaration(selector,CSSStyleDeclaration,update:Boolean); 已经有一个CSSStyleDeclaration对象的情况下,可以把它赋值给任何一个selector 2.对象id.styleName = CSSStyleDeclaration的实例 和id.styleName = CSSStyleDeclaration的实例所对应的选择器名字字符串,效果一样 3.如果这么写,其实Panel的样式已经改变了。。。如果有同名的Class选择器也会这样的 myContainerStyle = new CSSStyleDeclaration("Panel");
myContainerStyle.setStyle(
"font"
,
"Arial"
);
myContainerStyle.setStyle("fontSize","40").4.上面的这个CSSStyleDeclaration如果是定义的一个针对某新的Class选择器的。 要把它应用到具体的对象 Class Type 三种情况,方法分别是 a.对象id.styleName = CSSStyleDeclaration名 或 选择器名 b StyleManager.setStyleDeclaration(目标选择器名,本新定义的CSSStyleDeclaration对象名,true) 5.获取某个对象的样式 StyleManager.getStyleDeclaration(选择器的名字字符串) 6.如果要给某个对象的具体样式属性值改变的话,那么就用 c2.setStyle("color","red") | ||||
14.下面进入正题 | 1.把css编译成swf 2.在运行时直接用StyleManage.loadStyleDeclaration("swf路径") 这样不仅load了,而且还直接应用了! | ||||
15.在CSS文件中。 | 我把CSS里的某个选择器。从Application 改为 global 就没有报错了! 否则就会有报错: Multiple markers at this line: -The CSS type selector 'Application' was not processed, because the type was not used in the application. -Type 'Application' in CSS selector 'Application' must be qualified with a namespace. -Type 'Application' in CSS selector 'Application' must be qualified with a namespace. | ||||
16.在窗口内Repeater无法定义 | 为什么? | ||||
17.XML的规则我得看一遍 | |||||
服务器技术: | |||||
第17章 Flex 服务器技术概览 | |||||
1.flex服务器技术定义 | |||||
2.LiveCycle Data Service基础架构 | |||||
3.安装LCDS | |||||
4.LCDS的配置文件 | |||||
5.使用LCDS来创建Flex应用 | |||||
第 18 章 访问Web 和HTTP服务 | |||||
1.直接访问Web服务 | 1.使用WebService组件 2.实例化WebService组件 3.加载WSDL文档 4.调用Web服务操作 5.处理响应 6.异常处理 7.使用<mx:operation>处理多个Web服务操作 | ||||
2.使用WebService直接访问Web服务 | 1.使用XFire构建Web服务 2.浏览Web服务的WSDL文件. 3.创建Flex应用 - 直接调用RevenueService | ||||
3.直接访问HTTP服务 | 1.mx.rpc.http.HTTPService服务组件 2.实例化HTTPService组件 3.处理响应和异常 4.调用HTTP服务 | ||||
4.使用HTTPService访问JSP页面 | 1.通过JSP技术提供HTTP服务 2.直接调用HTTP服务 | ||||
5.跨域访问RPC服务的安全限制 | 1.跨域访问的安全限制 2.应用crossdomain.xml示例 3.HTTP代理服务的作用 | ||||
6.应用HTTP代理服务 | 1.HTTP代理介绍 2.使用proxy-config.xml配置HTTP代理服务端点。 3.使用代理服务的WebService和HTTPService组件 4.使用HTTP代理服务访问Web和HTTP服务 | ||||
7.使用代理服务的样例 | 1.创建使用服务器技术的Flex Web应用项目 2.配置代理服务目标 3.定义WebService和HTTPService组件 | ||||
第19章 访问远程服务 | |||||
1.远程服务介绍 | 1.RemoteObject组件 | ||||
2.访问远程Java对象 | 1.服务器端 实现 POJO Java 类 2.服务器端 部署 POJO java 类 3.服务器端 配置remote-config.xml 4.客户端 实例化RemoteObject组件对象 5.客户端 调用远程Java对象方法 6.客户端 处理响应和异常 7.使用<mx:operation>处理多个方法 | ||||
3.远程服务中的数据序列化 | 1.数据类型对照 2.强类型对象的映射 | ||||
4.购物车应用 | 1.样例架构 2.实现购物车远程Java代码 3 部署服务器端代码 4.配置远程目标 5.实现客户端Flex应用 6.运行示例 7.作用域session request application 选项的最后讨论 | ||||
第20章 使用消息服务的客户端应用 | |||||
1.消息服务基础 | 1.客户端之间端到端的消息通讯 2.服务器向客户端推送的消息 3.发布 - 订阅模式 | ||||
2.消息服务的架构 | 1.消息发布组件 Productor 2.消息订阅和接收组件 Consumer 3.通道 4.消息目标 5.适配器 | ||||
3.消息 | 1.消息头 2.消息正文 | ||||
4.发送消息 | 1.实例化Productor组件 2.创建消息实例 3.发送消息 4.确认发送状态 | ||||
5.订阅接收消息 | 1.实例化Consumer组件 2.消息订阅和注销 3.接收消息 | ||||
6.配置消息目标 | 1。 | ||||
7.示例 购物商场销售监控 | 1.样例架构 2.配置消息服务目标 3.改造购物车,发送消息 4.商城监控台Flex应用: 接收消息. 5.运行示例 | ||||
第21章 数据管理服务 | |||||
1.数据管理服务的基础 | 1.使用数据管理服务的原因 2.数据管理服务架构 | ||||
2.数据管理服务的数据 | 1. | ||||
3.数据管理组件DataService | 1.DataService的CRUD方法 2.客户端到服务器的提交模式 3.客户端间的同步模式 | ||||
4.配置数据管理服务 | 1.配置通道 2.配置适配器 3.数据对象的唯一标识 4.映射装配器方法 | ||||
5.定制装配器类 | 1.实现装配器类接口 2.通过方法映射定制装配器 | ||||
6.示例 使用数据管理服务的学生管理应用 | 1.服务器端和客户端的Value Object类 2.持久性数据 3.服务器代码 DAO类 4.自定义装配器类StudentAssembler 5.部署服务器端代码 6.配置数据管理服务目标 7.创建使用数据管理服务的客户端应用 8.运行学生管理应用 | ||||
7.处理数据冲突 | 1.在服务器端判断冲突发生 2.在客户端解决冲突 | ||||
8.使用分布技术处理大规模数据 | 1.服务器端应用到客户端之间的数据分页 2.数据库到服务器端应用的数据分页 |