1、三大概念:显示对象、可交互对象、容器对象
2、由于有了显示列表的概念,遍历子对象更加轻松简单
3、as3代码被编译成flash player运行时可以理解的actionscript bytecode,不可单独运行,必须放在swf中
4、trace仅作为测试使用
1>变量使用骆驼是命名法:highLevelFlag
2>变量的本质:其实就是类,每个类型就是一个类
3>对于array初始化:var arr:Array = new Array(1,2,3);
4>值类型:boolean int number String uint 不用new
变量改变时,即新建变量赋值,垃圾回收原来的变量
原因:效率一样高;内存占用更低,比java节省10倍左右
5>引用类型:注意存储问题;注意复制问题
6>const相当于var:声明引用类型,只能保证引用不改变,所引用的值不能保证
7>String:使用 “abc”和new String(“abc”)一样;单引号和双引号效果一样
8>\:表示转义,*\表示在字符串中加入*
9>Array:[]&new array()效果一样;new array(5)长度为5
10>Object:Array通过数字访问,Object通过名字访问;{}&new object()作用一样
注意:使用{}可以将属性和方法写进去
var dily:Object = {name:"zhaoxin",qqNum:"595850892"}
trace(dily.qqNum);//595850892
注意:Object可以动态添加属性,例如
var dily:Object = {};
dily.name = "zhaoxin";
dily.hello = function(){trace(Hello dily!);}
11>多维数组:数组内嵌套数组:var sample:Array = [[1],[2],[3,2]];
可以先定义数组长度,再添加数组
var sample2:Array = new Array(3);
sample2[0] = [1,2,3];
12>===:必须类型相同才为真
13>typeof&is&as&in
14>delete删除动态属性:删除10中的name:delete dily.name
15>枚举,挨个访问成员;for in索引,属性,for each in值
16>break&continue只对当前子循环有效
17>switch全等比较,不能进行类型转换
高级函数技巧:
1>两种函数声明方式:
var testa:Function = function():void{}
Function testb():void{}//提倡
注意:两种定义法的this关键字区别
1)语句定义法,指定当前作用域,且无法改变
2)表达式法,指定当前对象,可以该表使用apply(obj)
2>对于动态参数:默认arguments.length长度&callee()递归;自定义...paras,paras[i]
3>函数其实就是一种Function对象
4>函数高级使用技巧:
1)代理函数对象:var dily:Function; dily = maleFunc;
2)建立函数执行队列:将函数放到数组里
var dily:Array = [];
dily.push(aFun);
for(){dily[i](m)}
3)利用函数返回函数:chooseFuncBY("A")("a func!"); chosseFuncBy(input:*):Function
*:可以使任何类型
5>使用函数表达式函数可以动态添加属性,和Object一样
6>函数对象动态添加实例方法:草,太他妈的乱拉!这他妈也行?!?!针对函数表达式!