/*
프로그램이름 : 계산기
만 든 이 : 권오남
만 든 날 짜 : 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 |