/* 프로그램이름 : 계산기 만 든 이 : 권오남 만 든 날 짜 : 2009. 04. 21 */ // 변수 선언 var numA:String; var numB:String; var methodCalc:String; var numResult:Number; var numMc:int = 10; // 버튼으로 라벨 지정 btn00_mc.label = "0"; btn01_mc.label = "1"; btn02_mc.label = "2"; btn03_mc.label = "3"; btn04_mc.label = "4"; btn05_mc.label = "5"; btn06_mc.label = "6"; btn07_mc.label = "7"; btn08_mc.label = "8"; btn09_mc.label = "9"; btnClear_mc.label = "C"; btnEqu_mc.label = "="; btnDiv_mc.label = "/"; btnMul_mc.label = "*"; btnSub_mc.label = "-"; btnPlu_mc.label = "+"; // 수 추가 function numInput( e:MouseEvent ){ var btn:Button = e.currentTarget as Button; if ( numA == null ) { numA = btn.label; } else { numA += btn.label; } input_mc.text = numA; } // 수 추가 이벤트 btn00_mc.addEventListener( MouseEvent.CLICK, numInput ); btn01_mc.addEventListener( MouseEvent.CLICK, numInput ); btn02_mc.addEventListener( MouseEvent.CLICK, numInput ); btn03_mc.addEventListener( MouseEvent.CLICK, numInput ); btn04_mc.addEventListener( MouseEvent.CLICK, numInput ); btn05_mc.addEventListener( MouseEvent.CLICK, numInput ); btn06_mc.addEventListener( MouseEvent.CLICK, numInput ); btn07_mc.addEventListener( MouseEvent.CLICK, numInput ); btn08_mc.addEventListener( MouseEvent.CLICK, numInput ); btn09_mc.addEventListener( MouseEvent.CLICK, numInput ); // 다지우기 ( C ) function numClear( e:MouseEvent ){ numA = null; numB = null; input_mc.text = ""; } // 다지우기 이벤트 btnClear_mc.addEventListener( MouseEvent.CLICK, numClear ); // 연산자 저장 ( /, *, +, - ) function numCalc( e:MouseEvent ){ var btn:Button = e.currentTarget as Button; if ( numA != null ){ numB = numA; numA = null; input_mc.text = ""; methodCalc = btn.label; } } // 연산자 저장 이벤트 btnDiv_mc.addEventListener( MouseEvent.CLICK, numCalc ); btnMul_mc.addEventListener( MouseEvent.CLICK, numCalc ); btnSub_mc.addEventListener( MouseEvent.CLICK, numCalc ); btnPlu_mc.addEventListener( MouseEvent.CLICK, numCalc ); // 연산 실행하기 (=) function numEqu( e:MouseEvent ){ var btn:Button = e.currentTarget as Button; if ((numB != null ) && ( numA != null ) && ( methodCalc != null )){ switch( methodCalc ){ case "/" : numResult = Number( numB ) / Number( numA ); break; case "*" : numResult = Number( numB ) * Number( numA ); break; case "-" : numResult = Number( numB ) - Number( numA ); break; case "+" : numResult = Number( numB ) + Number( numA ); break; default : } numB = null; numA = String( numResult ); input_mc.text = numA; } } // 연산 실행 이벤트 btnEqu_mc.addEventListener( MouseEvent.CLICK, numEqu );
텍스트인풋 1개 버튼 16개가 있고 사칙연산을 비롯해 9까지의 숫자 버튼을 클릭하여 실행되는
이벤트 함수들을 코딩하여 계산기를 만들었습니다.
이벤트 함수들을 코딩하여 계산기를 만들었습니다.
출처 : 핵심노트 액션스크립트3.0
'AS3 > ActionScript' 카테고리의 다른 글
Loader (22) | 2009.04.30 |
---|---|
객체지향 설계, 클래스의 재사용, setChildIndex, 예제 (0) | 2009.04.22 |
Array 함수를 이용해서 무비클립 복제와 Drag시키기 (0) | 2009.04.20 |
removeChild, removeEventListener를 통한 메모리상 객체지우기 (0) | 2009.04.20 |
키보드 제어 (0) | 2009.04.20 |