import flash.events.Event;
var i:int=3;
var j:int=2;
addEventListener(Event.ENTER_FRAME,fun);
function fun(event:Event):void{
trace(i+j);
if(i+j==j+i){
removeEventListener(Event.ENTER_FRAME,fun);
}
}
不知道父不符合你的要求,先凑合着看看哇。我觉得那个判断的语句比较有趣,呵呵。如果没有这个判断语句,这个函数会已知下去,虽然在这个例子里面体现不出什么了,但是一旦文件过大,你就会觉得你的机子特别的卡,所以当一个函数完成时,有停止它,是很重要的。
private function fun(exp:String):uint{
var answer:uint=0;
var length:uint=exp.length;
var combo:String="+-*/";
var op:uint=100;
var leftright:uint=-100;
mainloop:for(var i:uint=0;i
if(exp.charAt(i)==combo.charAt(j)){
op=j;
leftright=i;
break mainloop;
}
}
}
太多了,不写了,这里主要处理按leftright的值把exp那个表达示拆开2个操作数,你去网上查,再把这两个数变成数字uint形式。
相关的主要命令是var left:string=substring(0,leftringt-1);
var right:stirng=substring(leftright+1;length-leftright);
然后就是通过操作强制转换命令去转:var leftnum:Number=parseInt(left,10);
var rightnum:Number=parseInt(left,10);
swithc(op){
case 0:
answer=leftnum+rightnum;
break;
case 1:
answer=leftnum-rightnum;
...............
}
}
需要考虑:只有加减乘除四种运算?输入有无-5这样的情况?用字符操作函数判断一下,分情况输入就是了。