For the calculator i am creating i have so far got all d buttons inputting into the display area such as the numbers and the operators. However for the operators when i try to store the value into two number variables ‘num1’ and ‘num2’, i traced them to test if they were working fine however they output as ‘NaN’. here is the code i have so far and the highlighted area is what i am working on currently
import flash.events.MouseEvent;var btn:Array = new Array();for(var i = 0; i < 10; i++) { var myBtn:Btn = new Btn(); myBtn.y = 15; myBtn.x = i * 100 + 15; myBtn.width = 48; myBtn.height = 48; myBtn.buttonMode = true; myBtn.mouseChildren = false; myBtn.num = Number(i); myBtn.caption.text = String (i); addChild(myBtn); btn.push(myBtn); btn*.addEventListener(MouseEvent.CLICK,pressNumber);//EVENT TO ADD NUMBERS TO DISPLAY }btn[0].y += 370;btn[0].x += 10; btn[1].y += 310;btn[1].x += -90;btn[2].y += 310;btn[2].x += -130;btn[3].y += 310;btn[3].x += -170;btn[4].y += 250;btn[4].x += -390;btn[5].y += 250;btn[5].x += -430;btn[6].y += 250;btn[6].x += -470;btn[7].y += 190;btn[7].x += -690;btn[8].y += 190;btn[8].x += -730;btn[9].y += 190;btn[9].x += -770;//OPERATORS//var operators:Array = new Array();for(var io:int = 0; io < 6; io++) { var opBtn:Btn_operator = new Btn_operator(); opBtn.width = 48; opBtn.height = 48; opBtn.buttonMode = true; opBtn.mouseChildren = false; opBtn.caption_op.text = String ("."); addChild(opBtn); operators.push(opBtn); operators[io].addEventListener(MouseEvent.CLICK, pressOperator);//EVENT TO ADD OPERATORS TO DISPLAY}//ADD DOTvar dot:Btn_dot = new Btn_dot(); dot.width = 48; dot.height = 48; dot.buttonMode = true; dot.mouseChildren = false; dot.caption_op.text = String ("."); addChild(dot);dot.y += 383;dot.x += 78;dot.addEventListener(MouseEvent.CLICK, addDot);//EVENT TO ADD DOT TO DISPLAY//BACKSPACEvar goBack:Btn_backspace = new Btn_backspace(); goBack.width = 48; goBack.height = 48; goBack.buttonMode = true; goBack.mouseChildren = false; goBack.caption_op.text = String ("<--"); addChild(goBack);goBack.y += 203;goBack.x += 256;goBack.addEventListener(MouseEvent.CLICK, backSpace);//EVENT TO GO BACK SPACE IN DISPLAY//BACKSPACEvar clearAll:Btn_clear = new Btn_clear(); clearAll.width = 48; clearAll.height = 48; clearAll.buttonMode = true; clearAll.mouseChildren = false; clearAll.caption_op.text = String ("C"); addChild(clearAll);clearAll.y += 323;clearAll.x += 256;clearAll.addEventListener(MouseEvent.CLICK, clearFields);//EVENT TO GO BACK SPACE IN DISPLAYoperators[0].y += 383;operators[0].x += 138;operators[0].caption_op.text = String("=");operators[1].y += 383;operators[1].x += 198;operators[1].caption_op.text = String("/");operators[2].y += 323;operators[2].x += 198;operators[2].caption_op.text = String("*");operators[3].y += 263;operators[3].x += 198;operators[3].caption_op.text = String("-");operators[4].y += 203;operators[4].x += 198;operators[4].caption_op.text = String("+");operators[5].y += 263;operators[5].x += 256;operators[5].caption_op.text = String("-/+");//VARIABLE HANDLE OPERATION NOT BUTTONvar operate:String;//HANDLE FIRST AND SECOND VALUEvar num1:Number;var num2:Number;//grouping all buttons in function//display_txt.text = "0";//DISPLAYING NUMBERS IN DISPLAY//var numberEntered:String ="";function pressNumber(e:MouseEvent):void{ display_txt.appendText(e.target.num);}//DISPLAY OPERATORSfunction pressOperator(event:MouseEvent):void{ var operatorEntered:String; display_txt.appendText(event.currentTarget.caption_op.text); //CHECKING FOR VALUES AND STORING NUMBERS if(!num1){ //CONVERT STRING TO NUMBER num1=Number(display_txt.text); operate = operatorEntered; display_txt.text = ""; trace(num1); } else if(!num2){ num2 = Number(display_txt.text); operate = operatorEntered; } }//CLEARS DISPLAY AREAfunction clearFields(event:MouseEvent):void{ display_txt.text = ""; num1=NaN; num2=NaN; }//ADDS DECIMAL PLACEfunction addDot(event:MouseEvent):void{ if (display_txt.text.indexOf(".")==-1){ display_txt.appendText("."); } }
I need to see if the number is stored when i click on d operator. In the trace It is meant to display the number entered after i click on a operator but it displays as ‘NaN’ I am guessing all of that function has mistakes. it is function pressOperator i am working with