计算器
来源:互联网 发布:幻影2000 台湾 知乎 编辑:程序博客网 时间:2024/04/29 19:13
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" fontSize="12" creationComplete="init();">
<mx:Script>
<![CDATA[
import mx.utils.StringUtil;
private var hasclickfloat:Boolean=false;
private var hasover:Boolean=false;
private var num:Number=0;
private var cal:String;
private function init():void{
result.text="0";
hasclickfloat=false;
}
private function addnum(str:String):void{
if(result.text=="0")
{
result.text=str;
}
else if(result.text=="NaN"){
result.text=str;
}
else if(hasover==true){
result.text=str;
hasover=false;
}
else{
if(result.text.length<=9){
result.text=result.text+str;
}else {
init();
addnum(str);
}
}
}
private function add(str1:String,str2:String):void{
num=Number(str1);
hasclickfloat=false;
cal=str2;
init();
}
private function genhao(str:String):void{
hasclickfloat=false;
if(str==null){
result.text="";
}
else if(str=="NaN"){
result.text="NaN";
}
else {
result.text=String(Math.sqrt(Number(str)));
}
}
private function pingfang(str:String):void{
hasclickfloat=false;
if(str==null){
result.text="";
}
else if(str=="NaN"){
result.text="NaN";
}
else {
result.text=String(Number(str)*Number(str));
}
}
private function fanshu(str:String):void{
hasclickfloat=false;
if(str=="0"||str==".0"){
result.text="NaN";
}
else {
result.text=String(1/Number(str));
}
}
private function txtnum(str:String):void{
}
private function addfloat():void{
if(hasclickfloat==false){
addnum(".");
hasclickfloat=true;
}
else {
return ;
}
}
private function addfuhao(str1:String,str2:String):void{
if(str1=="0"){
result.text="-";
return ;
}
num=Number(str1);
hasclickfloat=false;
cal=str2;
init();
}
private function docal(str:String):void{
if(cal=="+"){
result.text=String(num+Number(str));
hasover=true;
}
else if(cal=="-"){
result.text=String(num-Number(str));
hasover=true;
}
else if(cal=="*"){
result.text=String(num*Number(str));
hasover=true;
}
else if(cal=="/"){
if(str=="0"||str==".0"){
result.text="NaN";
hasover=true;
}
else {
result.text=String(num/Number(str));
hasover=true
}
}
else {
return;
}
}
]]>
</mx:Script>
<mx:Panel id="Calculate" x="134.5" y="51" width="220" height="264" layout="absolute" title="计算器" >
<mx:TextInput x="10" y="10" width="180" id="result" textAlign="right" backgroundColor="#F4DA7F" enter="docal(result.text)"/>
<mx:VBox x="10" y="38" height="180" width="180" verticalGap="5">
<mx:HBox width="100%" height="30" horizontalGap="4" paddingLeft="4">
<mx:Button width="40" label="S" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #11FFFF, #FF33FF]" cornerRadius="0" click="genhao(result.text);"/>
<mx:Button label="G" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #1FF3FF, #7FFF1F]" cornerRadius="0" click="pingfang(result.text);"/>
<mx:Button width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #FF0F4F, #FFF9F0]" cornerRadius="0" label="N" click="fanshu(result.text);"/>
<mx:Button label="C" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F4F2F, #1FFF0F]" cornerRadius="0" click="init();"/>
</mx:HBox>
<mx:HBox width="100%" height="30">
<mx:HBox width="100%" height="30">
<mx:HBox width="100%" height="30" horizontalGap="4" paddingLeft="4">
<mx:Button id="bt1" label="1" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #0FFFF1, #5FFAFF]" cornerRadius="0" click="addnum(bt1.label);"/>
<mx:Button id="bt2" label="2" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #1FFF5F, #F7FFF2]" cornerRadius="0" click="addnum(bt2.label);"/>
<mx:Button label="3" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F6FFFB, #FB7FFF]" cornerRadius="0" id="bt3" click="addnum(bt3.label);"/>
<mx:Button label="=" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #FBFF3F, #FFBFF9]" cornerRadius="0" click="docal(result.text);"/>
</mx:HBox>
</mx:HBox>
</mx:HBox>
<mx:HBox width="100%" height="30" horizontalGap="4" paddingLeft="4">
<mx:Button label="4" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #FFF000, #FF0000]" cornerRadius="0" id="bt4" click="addnum(bt4.label);"/>
<mx:Button label="5" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #FF2F1F, #FF1FF2]" cornerRadius="0" id="bt5" click="addnum(bt5.label);"/>
<mx:Button label="6" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #AFFFAF, #BFFFFB]" cornerRadius="0" id="bt6" click="addnum(bt6.label);"/>
<mx:Button label="+" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #1F1FFF, #2FF2FF]" cornerRadius="0" click="add(result.text,idjia.label);" id="idjia"/>
</mx:HBox>
<mx:HBox width="100%" height="30" horizontalGap="4" paddingLeft="4">
<mx:Button label="7" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #11FFFF, #F99FFF]" cornerRadius="0" id="bt7" click="addnum(bt7.label);"/>
<mx:Button label="8" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #121FFF, #F3333F]" cornerRadius="0" id="bt8" click="addnum(bt8.label);"/>
<mx:Button label="9" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #1FFF30, #FFFFFF]" cornerRadius="0" id="bt9" click="addnum(bt9.label);"/>
<mx:Button label="-" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F1F9FF, #FFF021]" cornerRadius="0" click="addfuhao(result.text,idjian.label);" id="idjian"/>
</mx:HBox>
<mx:HBox width="100%" height="30" horizontalGap="4" paddingLeft="4">
<mx:Button label="0" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #AAAAAF, #FBBBBB]" cornerRadius="0" id="bt0" click="addnum(bt0.label);"/>
<mx:Button label="." width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F3333F, #F7777F]" cornerRadius="0" id="bt_float" click="addfloat();"/>
<mx:Button label="/" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F7FF7F, #FF7F33]" cornerRadius="0" click="add(result.text,idchu.label);" id="idchu"/>
<mx:Button label="*" width="40" fillAlphas="[1.0, 1.0, 1.0, 1.0]" fillColors="[#5F5F58, #CCCCCC, #F33FFF, #66FFFF]" cornerRadius="0" click="add(result.text,idcheng.label);" id="idcheng"/>
</mx:HBox>
</mx:VBox>
</mx:Panel>
</mx:Application>