AS3.0学习空间

【private,protected,internal,public访问权限】

private:只能在类本身内部访问,按惯例,命名私有成员时以下划线"_"开头;

protected:可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,按惯例,命名保护成员时以下划线"_"开头;

internal:可以由类本身或者相同包内的任何类访问;

public:可以在类内部访问,也可以由类实例访问,或者声明为static时,可以直接从类访问.

 
【一个函数具有未知个数的参数,用arguments对象或"...(rest)"符号访问它的参数】

注意:使用"...(rest)"参数会使 arguments 对象不可用;

private funciton average():void{

    trace(arguments.length); //输出参数的个数

    // arguments的类型是:object,但可以像访问数组一样去访问它

    trace(arguments[1]); //输出第二个参数

}

private function average(...argu):void{

    trace(argu[1]); //输出第二个参数,argu参数名是自定义的.

}

 
【错误处理try,catch,finally】

private function tryError():void{

    try {

        trace("测试开始-try");

        throwError();

    }catch(errObject:Error) {

        trace("错误信息:" + errObject.message);

        trace("测试结束-catch");

        return;

    }finally{

        trace("虽然catch里已经有return方法,但位于return方法后面的finally里的代码依然会被执行.其实无论return方法是在try里,还是catch里,finally里的代码始终会被执行");

    }

    trace("前面已经有return了,此处是不会再执行的.除非没有抛出错误,以使catch里的代码没有被执行");

}

private function throwError():void{

    throw new Error("抛出错误");

}

 
【for...in与for each...in的区别】

与for...in循环不同的是,for each...in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引).

 
【命名包路径的小技巧】

    使用相应于拥有者和相关项目的包名称会比较好.按惯例来讲,包名称的开头应该是逆向的网址名称.例如,如果Example Corp(examplecorp.com)写了一些ActionScript3.0类,就会把所有类放在com.examplecorp包内(或者com.examplecorp的子包内).如此一来,如果英国有另一家Example Corp(examplecorp.co.uk)也写了一些ActionScript3.0类,只要使用包uk.co.examplecorp,就可确保唯一性.

    当类属于特定应用程序的一部分时,就应该放在该应用程序特定的子包内.例如,Example Corp可能有个应用程序名叫WidgetStore.如果WidgetStore应用程序使用一个名为ApplicationManager的类,则此类就应该放在com.examplecorp.widgetstore包内,或者位于该包的子包内.

    按惯例来说,包名称的开头是小写字母.

 
【隐式的取出方法(getter)和设定方法(setter)】

public function get count():uint {

    return _count;

}

public function set count(value:uint):uint {

    if(value < 100){

        _count = value;

    }else {

        throw Error();

    }

}

 
【确保类是绝不会有子类,使用final】

final public class Example{}

 
【super关键字的使用】

super(); //父类的构造函数,只能在类实例构造函数内部使用

super.propertyName; //调用父类的属性,属性需要声明为public或protected

super.methodName(); //调用父类的方法,方法需要声明为public或protected

 
【建立常数,使用关键字const而不是var】

static public const EXAMPLE:String = "example";

你可能感兴趣的:(as3)