我正在用 as3 和 flash 创建一个简单的计算器

I am Creating a simple calculator in as3 and flash

我正在使用 Action script 3.0 和 Flash 创建一个简单的计算器。 下面是我的代码。我无法获得结果,尽管它一直运行到 trace("calculating"+operator); 但没有显示结果。为什么? 如果我出错了,请建议我编写代码。

   import flash.events.MouseEvent;

_1.addEventListener(MouseEvent.CLICK, inputvalues)
_2.addEventListener(MouseEvent.CLICK, inputvalues)
_3.addEventListener(MouseEvent.CLICK, inputvalues)
_4.addEventListener(MouseEvent.CLICK, inputvalues)
_5.addEventListener(MouseEvent.CLICK, inputvalues)
_6.addEventListener(MouseEvent.CLICK, inputvalues)
_7.addEventListener(MouseEvent.CLICK, inputvalues)
_8.addEventListener(MouseEvent.CLICK, inputvalues)
_9.addEventListener(MouseEvent.CLICK, inputvalues)
_0.addEventListener(MouseEvent.CLICK, inputvalues)
_add.addEventListener(MouseEvent.CLICK, inputvalues)
_sub.addEventListener(MouseEvent.CLICK, inputvalues)
_div.addEventListener(MouseEvent.CLICK, inputvalues)
_mul.addEventListener(MouseEvent.CLICK, inputvalues)
_equal.addEventListener(MouseEvent.CLICK, inputvalues)
_dot.addEventListener(MouseEvent.CLICK, addDot);
_clear.addEventListener(MouseEvent.CLICK, clearscr);

var operator: String = "";
var value1: Number;
var value2: Number;
function inputvalues(e: MouseEvent): void {

        var valuestring: String = e.currentTarget.name
        valuestring = valuestring.substr(1);



        if (valuestring.length > 1) {

            operator = valuestring
            if (operator != "equal") {

                value1 = Number(this.display_txt.text)
                this.display_txt.text = "";

            }else{
                value2 = Number(this.display_txt.text)

                calculatevalue();

                }

        } else {
            this.display_txt.text = this.display_txt.text +valuestring;
        }

    }

    function calculatevalue() {
        trace("calculating"+operator);
        if (operator=="add")
        {

            this.display_txt.text = String(value1+value2);}

        }
    function clearscr(event:MouseEvent):void
      {
            display_txt.text="";
      }
     function addDot(event:MouseEvent):void
      {
        if (value1 == Number(display_txt.text))
       {
            display_txt.text = "0";
       }
         if (display_txt.text.indexOf(".") == -1)
       {
            display_txt.appendText(".");
       }
      }

嗯,您有一些代码已经存在于您在此处显示的同类脚本中。

import flash.events.MouseEvent;

var currentNumber:Number = 0;
var memoryNumber:String="";
var operator:String = "";

input_0.addEventListener(MouseEvent.CLICK, numberPushed);
input_1.addEventListener(MouseEvent.CLICK, numberPushed);
input_2.addEventListener(MouseEvent.CLICK, numberPushed);
input_3.addEventListener(MouseEvent.CLICK, numberPushed);
input_4.addEventListener(MouseEvent.CLICK, numberPushed);
input_5.addEventListener(MouseEvent.CLICK, numberPushed);
input_6.addEventListener(MouseEvent.CLICK, numberPushed);
input_7.addEventListener(MouseEvent.CLICK, numberPushed);
input_8.addEventListener(MouseEvent.CLICK, numberPushed);
input_9.addEventListener(MouseEvent.CLICK, numberPushed);
action_point.addEventListener(MouseEvent.CLICK, buttonPushed);
action_equals.addEventListener(MouseEvent.CLICK, buttonPushed);
action_divide.addEventListener(MouseEvent.CLICK, buttonPushed);
action_multiply.addEventListener(MouseEvent.CLICK, buttonPushed);
action_subtract.addEventListener(MouseEvent.CLICK, buttonPushed);
action_add.addEventListener(MouseEvent.CLICK, buttonPushed);
action_clear.addEventListener(MouseEvent.CLICK, buttonPushed);
action_clearall.addEventListener(MouseEvent.CLICK, buttonPushed);

function sum(operator):void{
    var total:Number
    switch(operator){
        case "-":
        total = Number(memoryNumber) - Number(currentNumber);
        break;
        case "+":
        total = Number(memoryNumber) + Number(currentNumber);
        break;
        case "/":
        total = Number(memoryNumber) / Number(currentNumber);
        break;
        case "*":
        total = Number(memoryNumber) * Number(currentNumber);
        break;
    }
    displayTxt.text = total;
    currentNumber = Number(displayTxt.text);
    operator=""
    memoryNumber=""
}
function buttonPushed(m:MouseEvent):void{
    if(m.currentTarget.name=="action_point"){
        displayTxt.appendText(".")
        action_point.removeEventListener(MouseEvent.CLICK, buttonPushed);
    }else if(m.currentTarget.name=="action_equals"){
        if(operator!=""){
            sum(operator)
        }
    }else{
        var whichOne:String = m.currentTarget.name;
        memoryNumber=currentNumber;
        displayTxt.text = "";
        switch(whichOne){
            case "action_divide":
            operator="/"
            break;
            case "action_multiply":
            operator="*"
            break;
            case "action_subtract":
            operator="-"
            break;
            case "action_add":
            operator="+"
            break;
            case "action_clear":
            currentNumber= 0;
            break;
            case "action_clearall":
            currentNumber= 0;
            memoryNumber="";
            break;
        }
    }
}
function numberPushed(m:MouseEvent):void{
    if(m.currentTarget.name.slice(-1)==0){
        if(currentNumber>0 ){
            displayTxt.appendText(m.currentTarget.name.slice(-1));
        }
    }else{
        displayTxt.appendText(m.currentTarget.name.slice(-1));
    }
    currentNumber = Number(displayTxt.text);
}  

尽情享受吧。