盘点AS3中的那些偷懒的语法,慢慢记录
为何还在摆弄as3呢? 虽然老早就流传as3衰败,h5兴起,再加上cocos u3d的威胁,adobe弃as4而转战h5领域。内忧外患,墙倒众人推啊!
然而,我才管不了这么多呢。按照自己的兴趣来就好! 其他的什么语言,后面再说。
最近一时兴起,总结了部分关于as3偷懒的语法,为何叫偷懒呢?其实也就是少写几个单词,少敲几下回车
1、变量命名不声明数据类型
例:var i=10;
说明:虽然说as3支持变量在声明的时候可以不写上数据类型,这样也没有错,即便是出一个警告,但是实际中切不建议这样做。究其原因 一来 维护的时候麻烦,二来as3不比Js as3拥有强大的flash pro fd fb编辑器 能够有效的提供代码提示,这样能够提高编码效率。如果声明数据类型,那么就会当作Object处理,不会有明确的代码提示。
2、使用一个var关键字声明N个变量
例:var i:int,b:Sprite= new Sprite();
说明:这种减少var关键字书写的偷懒法,具体书面上是叫什么,我也不怎么清楚。总之这样定义多个变量的时候 是支持这样做的,多个变量之间用 逗号 隔开,可以换行,以分号结束。说实话,这种方式也是在维护上可能会出现一些麻烦,但这里既然说是偷懒,那么也可以这样写, 可以一行 也可以直接逗号结尾 然后换行。当然了我平时一般不会这样写。
3、复杂数据类型 省略括号
例:var s:Sprite = new Sprite;
说明:这个不用多说,其实也偷不到什么懒 其功效和代码行省略分号差不多,建议是写上。如果实在不想写,那就由你去了。
4、简化判断语句
例:
!1&&trace(“as3”);
0||trace(“as3”);
1&&0&&trace(“as3”);
说明:as3中,可以单独在某一行上面写 && || ! 这三种语法。同时也会进行编译,运行。那么可以根据具体情况执行函数,从而达到简写 if判断语句。如上面例子中 第一个 1为真!1为假,故后面就不会有打印
第二行0为假,从而会对||后面的进行判定,故打印。第三行同理。
5、定义函数 变量 省略命名空间
例:
function foo():void
{
trace( “function”);
}
说明:偷懒虽易,且勿过渡。这个想必大家都知道,省略访问限制符 的函数 或者 变量 属于internal类型的,同包内的文件可以进行访问。但fb会出警告。
6、with 关键字
例:
var s:Sprite = new Sprite( );
with( s ){
name = “h”;
}
说明:with 关键字后面紧跟一个括号,里面接受一个定义好的变量,接着是一个花括号,花括号中可以省略变量名,而直接访问变量的属性;维护麻烦,无代码提示
7、闭包函数
例:
setTimeout( function k():void{ trace(“as3”)},1000 );
setTimeout( function (){ trace(“as3”)},1000 );
private function foo():void
{
function _test():void{};
}
说明:as3支持在函数体中嵌入函数,同时也支持将整个函数体当做参数传递。这种方式酌情考虑书写,和写在外面没什么多余的区别。唯一需要注意的时候,作用域。
8、各种不带花括号的写法
例: if(1)trace(“”); for( var i:int = 0;i < 2;i ++ ) trace(“”);
说明:在只有判断语句,循环语句 只有一行的情况下 可以直接省略花括号。
9、数组传参 不写变量名
例:foo([1,2]); function foo( _arr:Array ):void{}
说明:即当参数为数组或者是 Obejct Dictionary的时候 传参数可直接不定义 直接传参,但前提是 这种类在传参之前不需要 进行其他操作。同理在创建他们的时候 也可以直接写 而不带构造函数
var arr:Array = [];var obj:Object = {};注意 Dictonary不能 。
10、快速转换字符串
例:var s:String = 1+””;
说明:对数字之类的转换成字符串,可以使用toString,也可以直接 加上一个空字符串。