AS3学习笔记(一)
1.AS3中,一切都是对象。
2、AS3中的数据类型:
一)基元数据类型:包括Boolean、int、Number、String和unit(用来处理很大的整数)
二)复杂数据类型:包括Array、Date、Error、Function、RegExp、XML和XMLLIst
3、变量的声明
AS与JS的第一个明显的差别是,在声明或定义变量时,要带上变量的数据类型,
其格式为 var 变量名:数据类型
例如:var a:String="hello world";
var b:Number;
如果没有加上数据类型,则默认为untyped类型(在AS2中会被默认为Object类型)
用const来声明常量:const a:String="hello world"
如果声明了了一个布尔类型的变量,而没有给他赋值,那么他的默认值为false,(注:在AS2中则为undefined)
int类型范围为-2147483648~2147483648内的整数
unit类型范围为0~4294967295内的整数
NUmber类型表示的是浮点数
AS3中对象和数组中的键不用加上数据类型,如:
var a:Array=[];a[0]="hello world";
var b:Object={a:"hello world",b:123}
变量的默认值:
int:o
unit:0
String:null
Number:NaN
Array:null
Object:null
Boolean:flase
未定义类型的:undefined
4、使用全等符号时===时,int、unit、Number类型会被看做同一个数据类型
is 运算符用来判断一个对象是否属于一种类型,返回布尔值,如:
trace(9 is Number ) //输出 true
as 运算符与is一致,但返回值不同,如果一个对象属于一种类型,则返回这个对象,否则返回null,如:
trace(9 as Number) //输出9
trace(9 as Array) //输出null
for(var i:int=0;i<100;i++ ){} //要加上数据类型
for(var p in object){} //不用加上数据类型
for in 和for each in的区别:
for(var p in object ){} //p代表的是键名
for each (var p in object ){} //p代表的是集合成员,而不是键名成员的键名
5、函数定义的格式
function 函数名(参数一:类型,参数二:类型...):返回值类型{...}
如:function foo(a:String,b:int):int{...}
或: var foo:Function=function(a:String,b:int):int{}
6、函数中的this关键字
用function关键字定义的函数中的this总是指向定义函数所在的作用域,call和apply也不能改变this的指向
而用表达式定义的函数中的this指向的是调用函数的对象,可以用call和apply来改变this的指向
as3中的函数定以后,调用时必须严格按照定义时参数的类型和个数来使用,否则会报错,这点与js非常不同
可以设置函数参数的默认值,如
function foo(a:String='hello',b:int=100):void{...} //void代表函数没有返回值
AS3函数中同样存在arguments对象,用法与js基本相同
在定义函数时如果不想限制参数的个数,可以使用...rest关键字,rest也可以是其他名称,未定义的参数以数组形式保留在rest中,但注意一旦定义了...(rest),则arguments就不能再用了。如:
function foo(a:String,...rest):void{在这里可以用rest[i]来引用为定义但实际传入的参数}
现有的知识表明,如果要给函数添加一个属性或是在引用它时,要用关联数组的形式,不能用. 点号
如:foo['time']=123