AS3实用函数、AS3常用算法大合集
2012-02-06 12:13:33 来源:本站整理上百个as3知识点、AS3实用函数、AS3常用算法大合集,很强悍庞大,特别推荐!
【鼠标坐标】
mouseX mouseY
【检查变量类型并返回布尔值】
is
【检查变量类型并返回类型】
typeof
【检查对象类型并返回该对象】
as
【是数字但不是有效数字问题】
var quantity:Number = 15 – “rabbits”; trace(typeof quantity); //显示: “number” , 但它是NaN (not a number) trace(quantity is Number); //true trace(quantity != NaN); //false //使用isNaN()函数检测: isNaN(quantity); //true //检测变量是否内含有效数字: !isNaN(quantity); //false
【取消默认的严格编译模式】
在”Navigator”窗框里右键你的项目>选中”Properties”>选中”ActionScript Compiler”>取消”Enabel compile-time type checking”选项
【基元数据类型和复杂数据类型好比”值类型”和”引用类型”】
基元数据类型类似按值传递: var intOne:int = 1; var intTwo:int = 1; trace(intOne == intTwo); //true
【复杂数据类型类似按引用传递】
var arrayOne:Array = new Array(“a”, “b”); var arrayTwo:Array = arrayOne; trace(arrayOne == arrayTwo); //true //———————————– var arrayOne:Array = new Array(“a”, “b”); var arrayTwo:Array = new Array(“a”, “b”); trace(arrayOne == arrayTwo); //false
【优化逻辑AND(&&)和OR(||)的小知识】
对于逻辑And(&&): 除非条件表达式的前半部分为真,否则,ActionScript不会再去求算逻辑AND运算符的后半部.如果前半部为假,整个条件表达式一定为假,所以再去求算后半部就没效率了. 对于逻辑OR(||): 除非条件表达式前半部为假,否则,ActionScript不会再去求算逻辑OR运算符的后半部,如果前半部为真,整个条件表达式一定为真. 总结:使用逻辑AND(&&)时,把结果最可能为false的表达式放到前面;使用逻辑OR(||)时,把结果最可能为true的表达式放到前面.
【Timer类注意事项】
不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.
【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(“抛出错误”); }
更多精彩
赞助商链接