首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

简略计算器设计

2012-09-21 
简单计算器设计做的比较简单,参考Flex中文里面的简单计算器设计,加了小数点位数判断及除数为0的判断,SWF文

简单计算器设计
做的比较简单,参考Flex中文里面的简单计算器设计,加了小数点位数判断及除数为0的判断,SWF文件见附件。
源码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
private var operator:String = "";   //操作符 
private var num1:String = "";
private var num2:String = "";
//添加监听
private function init():void{
bt0.addEventListener(MouseEvent.CLICK,buttonDis);
bt1.addEventListener(MouseEvent.CLICK,buttonDis);
bt2.addEventListener(MouseEvent.CLICK,buttonDis);
bt3.addEventListener(MouseEvent.CLICK,buttonDis);
bt4.addEventListener(MouseEvent.CLICK,buttonDis);
bt5.addEventListener(MouseEvent.CLICK,buttonDis);
bt6.addEventListener(MouseEvent.CLICK,buttonDis);
bt7.addEventListener(MouseEvent.CLICK,buttonDis);
bt8.addEventListener(MouseEvent.CLICK,buttonDis);
bt9.addEventListener(MouseEvent.CLICK,buttonDis);
bt10.addEventListener(MouseEvent.CLICK,buttonDis);

btadd.addEventListener(MouseEvent.CLICK,operatorHandle);
    btdec.addEventListener(MouseEvent.CLICK,operatorHandle);
    btdiv.addEventListener(MouseEvent.CLICK,operatorHandle);
    btmul.addEventListener(MouseEvent.CLICK,operatorHandle);
   
    btequ.addEventListener(MouseEvent.CLICK,equalHandle);
       
btclear.addEventListener(MouseEvent.CLICK,textClear);
}

//显示按钮输入的值
private function buttonDis(e:MouseEvent):void{
var showNum:String = "";
//小数点的情况
if(txtResult.text.split(".").length == 3){
   txtResult.text = "重复输入小数点,请清空后重新计算";
   return;
   }
showNum += e.target.label;
if(operator == ""){
num1 += showNum;
txtResult.text = num1;
} else {
num2 += showNum;
txtResult.text = num2;
}
}

//文本框清空
private function textClear(e:MouseEvent):void{
txtResult.text = "";
num1 = "";
num2 = "";
}

//输入运算符
private function operatorHandle(e:MouseEvent):void{
operator = e.target.label;
if(num1 != "" && num2 != "" && operator != ""){
txtResult.text = calculateResult();
}
}

//计算结果
private function calculateResult():String{
var result:String = "0";
switch(operator){
case "/":
if(num2 == '0'){
        result = "除数不能为0";
        break;
        }         
            result =(Number(num1) / Number(num2)).toString();   //除法运算 
             break;
             case "*":        
             result = (Number(num1) * Number(num2)).toString();   //乘法运算 
            break; 
       case "+": 
             result = (Number(num1) + Number(num2)).toString();   //加法运算 
             break; 
         case "-": 
             result = (Number(num1) - Number(num2)).toString();   //减法运算 
             break; 
         default: 
             break; 
}
return result;
}

//输出计算结果
private function equalHandle(e:MouseEvent):void{
if(num1 != "" && num2 != "" && operator != "")      //判断变量是否为空 

var result:String = calculateResult();
       txtResult.text = result; //设置 txtResult 文本控件的内容为计算的结果
       operator = "";                          //清空操作符,以继续下一次运算 
       num1 = result;               //获取第一个操作数 
      num2 = "";                              //清空第二个操作数
       }
}
]]>
</mx:Script>
<mx:Panel x="73" y="60" width="303" height="350" layout="absolute" title="简易计算器" fontFamily="Times New Roman" fontSize="20">
<mx:TextInput x="40" y="10" width="190" id="txtResult"/>
<mx:Button x="40" y="60" label="7" id="bt7"/>
<mx:Button x="90" y="60" label="8" id="bt8"/>
<mx:Button x="140" y="60" label="9" id="bt9"/>
<mx:Button x="190" y="60" label="/" id="btdiv"/>
<mx:Button x="90" y="110" label="5" id="bt5"/>
<mx:Button x="140" y="110" label="6" id="bt6"/>
<mx:Button x="190" y="110" label="*" id="btmul"/>
<mx:Button x="40" y="160" label="1" id="bt1"/>
<mx:Button x="90" y="160" label="2" id="bt2"/>
<mx:Button x="140" y="160" label="3" id="bt3"/>
<mx:Button x="190" y="160" label="+" id="btadd"/>
<mx:Button x="40" y="210" label="0" id="bt0"/>
<mx:Button x="90" y="210" label="." id="bt10"/>
<mx:Button x="140" y="210" label="=" id="btequ"/>
<mx:Button x="190" y="210" label="-" id="btdec"/>
<mx:Button x="40" y="110" label="4" id="bt4"/>
<mx:Button x="40" y="251" label="Clear" id="btclear"/>
</mx:Panel>
</mx:Application>

热点排行