最近开始学习Flex,其中用到了AS,AS2到AS3发生了很大的变化,完全的面向对象,知道这个特点以后我也一直没有特意的好好去学学AS3,但是随着最近学习的深入,还是有必要学习一下。
访问修饰符:
Public:
Internal:包访问
Protected:类内部使用,还有子类可使用
Private:私有,只有类内部使用
数据类型:
基本类型:boolean、int、Null、Number、String、unit、void
复杂类型:Objec、Array、Date、Error、Function、RegExp、Xml、XmlList
Var tmpArr:Array=new Array("a","b","c");
Var tmpArr:Array=[];//创建的快捷方式
Var tmoArr:Array=[3];表示把3放到数组中
l Push:添加到尾部;unshift:添加到顶部;splice:添加到任何位置
l Pop:删除最后一个;shift:删除第一个;splice:删除任意位置元素
l Sort:简单排序,可以设置排序类型;sorton:排序多维数组;reverse:逆转
function aaa():void{} //函数语句定义法 var bb:Function=function ():void{} //函数表达式定义法
这两种方式的区别就是,前者只能先定义后使用,后者再函数编译的时候会被提升到最前面,可以先使用再定义。
…(rest):
函数的参数必须对应,但是参数中如果使用了…(rest)关键字,那么就可以接受任意多的参数。这些参数以数组的形式保存在rest中,当然rest只是推荐的命名,也可以改成其他的,比如…(paras)
function aaa(…paras):void{ trace(paras.length); }
实例属性和方法:
创建实例之后就可以使用”.”和”[]”运算符来访问实例的属性和实例的方法。如果希望再运行时再决定使用哪个属性(或者方法),就可以使用“[]”运算符了,如
实例名[“属性的名字”]
实例名[“方法的名字”](参数…)
动态类和密封类:
如果类名前面有dynamic关键字,那么这个类就是动态类,动态类比较灵活,可以再运行时加入额外的属性和方法。效率上比静态类差一点。
方法重载:
AS3不支持方法的重载,但是可以用”…”关键字来实现类似的行为,缺点就是如果需要返回的类型是不同的,只能将方法的返回类型设位”*”或者是Object
访问控制符:
在AS3中,访问控制符共有4个,即pblic、private、protected、internal ,都是通过AS3内置的命名空间(namespace)来实现的。
Internal是默认的访问控制符,表示只有和当前类再同一个包中的类其他类才能访问这个类成员,不属于一个包的类是无法访问到这个类成员的。
命名空间:
AS3的命名空间好像比较特别,和C#的命名空间并不相同,有待研究。
for…in和for each …in:
for…in和for each …in语句用来枚举一个集合中所有的元素。区别在于for…in的枚举变量代表的是键,必须通过访问符([])加上这个键值,才能访问到集合成员。for each …in的枚举变量直接代表集合的成员。