无双

博学善思,自强不息

导航

AS3学习笔记(一)

1.AS3中,一切都是对象。

 

2、AS3中的数据类型:

    一)基元数据类型:包括Boolean、int、Number、Stringunit(用来处理很大的整数)

   二)复杂数据类型:包括Array、Date、Error、Function、RegExp、XMLXMLLIst

 

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总是指向定义函数所在的作用域,callapply也不能改变this的指向

  而用表达式定义的函数中的this指向的是调用函数的对象,可以用callapply来改变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

posted on 2010-08-08 10:41  无双  阅读(1374)  评论(0编辑  收藏  举报