ActionScript学习笔记

ActionScript中预定义的数据类型:Boolean、int、Number、String、uint

其中,int、Number、uint是处理数字的。int用来处理整数,Number用来处理很长又有小数点的数字,uint处理很大的正整数。

复杂数据类型:Array、Date、Error、Function、RegExp、XML、XMLList

自定义类属于复杂数据类型。

publicclassAS_001extendsSprite{publicfunctionAS_001(){varv1:int=9;trace(v1);varv2:uint=10;//无符号数varv3:Boolean=true;varv4:Number=4.5;varv5:String="Helloworld";varv6:String='Helloworld!!!';varv7:*=3;//任意数据类型trace(v7);v7="你好";trace(v7);varv8;trace(v8);//undefinedvarv9:String;trace(v9);//nullvarv10:Array=[2,3,4,5];//数组trace(v10);varv11:Object={id:3,username:"admin",password:"admin"};trace(v11.username);}}

输出结果

9

3

你好

undefined

null

2,3,4,5

admin

publicfunctionmy_function(){varv1:Array=["a","b","c","d","e"];for(vari:Stringinv1){trace(i);trace(v1[i]);}foreach(varpropertyValue:Stringinv1){trace(propertyValue);}varv2:Object={id:1,name:"admin",age:22};for(variinv2){trace(i);trace(v2[i]);}foreach(varpropertyValue:Stringinv2){trace(propertyValue);}trace(v2["name"]);}publicfunctionmy_function1(){vartraceParameter:Function=function(aparam:String):void{trace(aparam);};traceParameter("hello");vartraceArray:Array=newArray();traceArray[0]=function(aParam:String):void{trace(aParam);};traceArray[0]("Hello");f("admin");f1("admin1","admin2");}publicfunctionf(name:String="zhangsan"):void{trace(name);//zhangsan是默认参数}publicfunctionf1(...args):void{trace(args.length);//可变参数}

ActionScript面向对象

新建ActionScript类Student.as

packagecom.umgsai.as3{publicclassStudent{privatevar_name:String="zhangsan";publicfunctionStudent(){}publicfunctionsetname(name:String):void{//set方法this._name=name;}publicfunctiongetname():String{//get方法returnthis._name;}}}

使用

vars:Student=newStudent();trace(s.name);//相当于调用functiongetname(),输出zhangsans.name="admin";//相当于调用functionsetname()trace(s.name);//输出admin

ActionScript动态类

新建Teacher类

packagecom.umgsai.as3{publicdynamicclassTeacher{publicfunctionTeacher(){}}}

使用

vart:Teacher=newTeacher();//Teacher类是动态类t.f=function(){//动态添加f函数trace("f");}t.f();deletet.f;//删除f函数//t.f();//此句会报错

ActionScript接口使用

IFlyable.as

packagecom.umgsai.as3{publicinterfaceIFlyable//接口一般以I开头{functionfly():void;//不写public之类的修饰符}}

实现接口

packagecom.umgsai.as3{publicclassTimplementsIFlyable{publicfunctionT(){}publicfunctionfly():void//实现接口方法{trace("fly");}}}

使用

vartt:IFlyable=newT();tt.fly();

ActionScript异常处理

try{thrownewEOFError("erroroccurs");}catch(error:Error){trace(error);}finally{trace("finnaly");}

值类型int例子

vara:int=3;varb:int=a;b=9;trace("a="+a);trace("b="+b);

执行结果:

a=3

b=9

引用类型例子。(类似C语言中的指针)

vara:Array=newArray(1,2,3);varb:Array=a;b[0]=4;trace("a:"+a);trace("b:"+b);

执行结果:

a:4,2,3

b:4,2,3

使用const声明常量

constfoo:int=100;//不可以改变foo的值

typeof、is、as

trace(typeof10);//Numbertrace(9isNumber);//true//as与is格式一致,内容不同。如果一个对象属于一种类型,那么as返回这个对象,否则返回nulltrace(9asNumber);//输出9trace(9asArray);//输出null

in关键字

vara:Array=["a","b","c"];trace(2ina);//true,数组a含有索引2trace(3ina);//false,数组a没有索引为3的元素varb:Object={ary:a,name:"OK"};trace("ary"inb);//true,b中有ary属性trace("name"inb);//true,b中有name属性varc:Dictionary=newDictionary();c[a]="avalue";c[b]="bvalue";trace(ainc);//truetrace(binc);//true

两种函数定义方法

privatefunctionfname():void{//函数语句定义法,推荐使用这种写法trace("Hello");}vartestAdd:Function=function(a:int,b:int):int{//函数表达式定义法returna+b;}

设置默认参数

publicfunctiontest(a:int=3,b:int=2,c:int=1):void{trace(a+b+c,a,b,c);trace("参数长度:"+arguments.length);}test();//6321全部使用默认值test(9);//12921使用后两个参数的默认值test(2,9);//12291使用最后一个参数的默认值test(1,2,3);//6123木有使用默认值