建立一个Flex需要的步骤:
1.选取预定义的控件
2.使用styles 和skins 定义样式
3.增加事件处理和脚本处理
4.连接数据和通讯服务
5.构建和运行程序
工程结构
MyForm
|--bin-debug
|--history
|-- MyForm.html 包括Flash 有页面 页面中会抉一些检测Flash版本 运行时的信息配置等一些信息
|-- MyForm.swf
|--html-template
|-- index.template.html 模板文件,规范生成上面页的大体信息
|--libs
|--src
|--MXML 文件, 最终会翻译成AS3文件,编译运行
AS3的基础语法 <mx:script></mx:script> 中间包括sa代码
代码片段中可以真接使用控件的ID操作 其实是对应的MXML要转化为AS,ID会变成变量名
<mx:style source="XX.css"/> 引入css文件
trace()
<![CDATA[...]]> 包括字符不会被转义
package
import
public proected private internal
static
function
const
片段: 创建数据 var arr:Array=new Array(); arr.push("");
<mx:Application> 根标签 由FlashPlayer 完成加载应用创建 creationComplete="method()"
<mx:Canvas> 画布 <mx:List> 列表 List 有dataProvider 数据源,dragEnabled allowMutipleSelection 等属性
方法声明 internal function initApp():void{}
for 和js的for循环是一样的
var num:int=0;
do(
num++;
)while(num<10);
var student:Object=new Object();
student.name="";
student.age="";
for(var i:Number=0;i<4;i++){}
for(var prop:String in student){
student[ n ];
}
for each(var value:* in student){
value.toString();
} * 代表不确定的类型
Boolean
int.MAX_VALUE
Number
String
unit
Date
mx.controls.TextArea
AS类只可以有一个构造方法
常量的声明 const PI:Number=23424;
静态方法只能访问静态变量
static funcation methodName():void{}
Flex事件流:
单击一个按钮,按钮把把单击的事件分发,将事件从根节点到子节点,检测分发路径中的对象不是注册了
监听器,是则调用监听函数 从上到下,再从目标对象向上返回
1.从上到下到目标对旬,检测对钟爱是否注册监听,是则调用:捕获阶段
2.调用目标对象称:目标阶段
3.从目标节点到要节点,检测对钟爱是否注册监听,是则调用:称冒泡阶段
每个节点上都有两次响应事件的机会!(一般二选一,,默认关闭捕获阶段)
注册监听器:btn.addEventListener(MouseEvent.CLICK,onclickevent,参数1,参数2,参数3);
//第三个参数:默认关闭捕获阶段的 第四个参数:优先级 多个方法的执行顺序
从0开始,数据字越大优先级越高 第五个参数:强弱引用,默认强引用,强引用可以防止垃圾回收
function onclickevent(evt:MouseEvent):void{
evt.bubbles 判断是否冒泡 evt.target evt.eventPhase 阶段 evt.currentTarget
}
IEventDispatcher 接口
add/removeEventListener
dispatchEvent(event:Event) 分发事件到事件流中
Event 类 cancelable 是否阻止默认行为 type 事件类型
stopImmediatePropagation() stopPropagation()
MouseEvent KeyboardEvent
用同一事件流中的对象分发事件,才能被响应