您的位置:首页 > 编程语言

AS3一些不太常见的代码写法

2009-09-09 11:34 204 查看
1、把:
//mc跳转到10以内的随机帧
mc.gotoAndPlay(Math.floor(Math.random()*10));
写成:
mc.gotoAndPlay(Math.random()*10>>0);
//大多数人都会用Math.floor()来取整,>>是位移符号,>>0就是去除小数点之后的数,用此方法来取整真是即方便又强悍。
2、把:
if(i%2==1){}//判断如果i是奇数,执行大括号中的语句
写成:
if(i&1){}
//i&1就是判断i是否是奇数,而思想就是以i的二进制最后一位与1相与,为真就是奇数、假就是偶数。跟传统的用模除来判断奇偶的思想相比,也很强悍。

3、把:
//给一个数组压入10以内的整数
var a:Array=[];
for (var i:int=0; i<10; i++) {
a.push(i);
}
写成:
//这是一种简化的写法,for语句后如果有一行代码要执行,可以省去大括号,这里只用分号相当于执行空语句
for (var i:int=0; i<10; a.push(i++));

4、把:
//计算鼠标移动的水平速度
var temp:Number=mouseX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);
function moveHandler(e:MouseEvent):void {
var d:Number=mouseX-temp;
temp=mouseX;
}
写成:
var temp:Number=mouseX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);
function moveHandler(e:MouseEvent):void {
var d:Number=(-temp+(temp=mouseX));
}
//这样的简写方式虽然很强悍,但本民工觉得降低了可读性,不需强求。

5、把:
//随机运行几个函数中的一个
function fn1 () {
trace(”1″);
}
function fn2 () {
trace(”2″);
}
var a:Array=[fn1,fn2];
var b:int=Math.random()*2>>0;
a[b]();
写成:
function fn1 () {
trace(”1″);
}
function fn2 () {
trace(”2″);
}
([fn1,fn2][Math.random()*2>>0])();
//高手就是喜欢省,没有超强的逻辑思绪还真搞不定呢。

6、把:
//多重条件语句
var a:int=6;
if (a>0) {
trace(”a is positive number”);
if (a&1) {
trace(”a is positive odd number”);
}
}
可以写成:
var a:int=3;
if (a>0&&(trace(”a is positive number”),a&1))
trace(”a is positive odd number”);
//这个我想应该很多人都会写,多重IF的简写,&&左边的语句返回true时才执行右边的。

7、把:
var a:int=13;
var b:int=-12;
if (!((a^b)>0)) {
b*=-1;
}
if ((a^b)>0||a>10) {
trace(b);
}
写成:
var a:int=13;
var b:int=-12;
if((a^b)>0||(b*=-1,a>10))
trace(b);
//跟上一例一样,||的左边语句要返回false时才执行右边的语句,另外,逗号表达式的返回值是最后一个逗号右边语句的返回值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: