본문 바로가기

AS3/ActionScript

switch 문과 산순연살자를 이용하여 계산기 만들기


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