这些代码你见过吗

一些不太常见的代码写法

先看一下下面的代码,看是否每个都知道是干什么的,稍后我再把每一个代码的作用帖上(注意,以下代码仅为示例,但大部分代码对于高手来说是不成问题的)
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.gotoAndPlay(Math.random()*10>>0);
Math.random()*10 取 10以内带小数的随机数。
>> 是移位符号 >>0 的功能去除小数点后的数!!(这个方法的确高明)
所以 Math.random()*10>>0 整句话的意思是 获取10以内的随机整数!
2、if(i&1){}
i&1 的意思就是判断 i是奇数还是偶数
如果是奇数 i 的2进制表示最后一位是1, i&1=1 真
偶数 i 的2进制表示最后一位是0, i&1=0 假。
3、var a:Array = new Array();
for (var i:int=0; i<10; a.push(i++)){
//....
}

此循环 执行后 a数组的值为 0,1,2,3,4,5,6,7,8,9.
一个简化程序的方法
能用上的地方有很多。。具体地方具体分析。。
4、var temp:Number=mouseX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);
function moveHandler(e:MouseEvent):void {
var d:Number=(-temp+(temp=mouseX));
}
这段代码功能是 获取鼠标移动距离 d
用在鼠标拖拽窗体 或者鼠标拖拽游戏上 真是不要太爽!!!
代码完全可以改为
Mouse.hide();
var temp:Number=mouseX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);
function moveHandler(e:MouseEvent):void {
var d:Number=(-temp+(temp=mouseX));
spriteMouse.x += d;
e.updateAfterEvent();
}

这样 spriteMouse 这个影片剪辑就成了一个鼠标
5、function fn1 () {
trace("1");
}
function fn2 () {
trace("2");
}
([fn1,fn2][Math.random()*2>>0])();
这个是随机执行函数的命令 挺有意思的

如 一个欢迎界面
function fn1 () {
trace("你来啦欢迎啊");
}
function fn2 () {
trace("来了你别走啊 ");
}
function fn3 () {
trace("你这么才来啊");
}
function fn4 () {
trace("就猜到你要来");
}
([fn1,fn2,fn3,fn4][Math.random()*4>>0])();
6、
var a:int=3;
if (a>0&&(trace("a is positive number"),a&1))
trace("a is positive odd number");

先执行a>0 真
再执行 trace("a is positive number")
最后判断a是不是奇数
这里的逗号表达式是从左向右执行的。

此用法主要 用来判断有没有执行某处语句 吧

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

又是一个逗号表达式
a^b = -7
b*=-1 b=12
a>10
输出 b=12
此用法看的莫名其妙 真不知道应该用在什么地方
哈哈~
///
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才执行右边的语句。另外还用到了逗号表达式,返回值为最
后一个逗号右边的语句的返回值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值