[转]一些不太常见的代码写法(AS3.0)

一些不太常见的代码写法(AS3.0)
本文作者:dmh2002 发布于:2008-7-27 分类:AS3 经验/技巧/游戏 点击:311

一些不太常见的代码写法

写法:


1、

mc.gotoAndPlay(Math.random()*10>>0);

2、
if(i&1){}

3、
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=(-temp+(temp=mouseX));
}

5、

function fn1 () {
trace("1");
}
function fn2 () {
trace("2");
}
([fn1,fn2][Math.random()*2>>0])();

6、

var a:int=3;
if (a>0&&(trace("a is positive number"),a&1))
trace("a is positive odd number");

7、
var a:int=13;
var b:int=-12;
if((a^b)>0||(b*=-1,a>10))
trace(b);

分析:


1、把:
//mc跳转到10以内的随机帧
mc.gotoAndPlay(Math.floor(Math.random()*10));
写成:
mc.gotoAndPlay(Math.random()*10>>0);

2、把:
if(i%2==1){}//判断如果i是奇数,执行大括号中的语句
写成:
if(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");      

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);

6和7主要用到了&&和||是短路运算符。&&之左的语句返回true才执行右边的语句。
||之左的语句返回false才执行右边的语句。另外还用到了逗号表达式,返回值为最
后一个逗号右边的语句的返回值。

你可能感兴趣的:(游戏)