我正在创建一个简单的计算器在行动脚本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);
}
。