Macromedia Flex 제작 계산기 소스 코드 및 제작 절차

이 계산 기 는 두 부분 으로 구성 되 어 있 습 니 다.하나의 프론트 인터페이스의 MXML 파일,하나의 백 스테이지 컨트롤 러 의 AS 파일 입 니 다.mxml 파일 은 계산기 의 인터페이스 를 표시 하고 as 파일 은 사용자 가 보 낸 정 보 를 처리 하 며 결 과 를 계산 합 니 다.이 튜 토리 얼 에서 우 리 는 주로 학습:[list]The Application class The Panel container The Label element The Grid container The Button element[/list]ActionScript 의 주요 학습 내용:[list]A class definition Properties Methods The if-else and switch-case control structures[/list]===============================================calculator.mxml 로 저 장 된 빈 mxml 파일 입 니 다.표준 에 맞 는 flex 파일 은 MX 라 이브 러 리 xmlns:mx="http://www.macromedia.com/2003/mxml따라서 calculator.mxml 에 다음 코드 를 기록 합 니 다.따라서 우 리 는 먼저 Panel 패 널 을 만 들 고 tittle 속성 을 설정 해 야 합 니 다.Calculator 는 응용 프로그램 영역 에 추가 합 니 다
<?xml version="1.0">
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
</mx:Application>
======================계산기 디 스 플레이 를 만 듭 니 다.집중 속성 사용:[list]id:Label 의 표지,Flash 의 Instance Namewidth:Label 의 너비,단위:픽 셀 text:Label 의 내용 textAlign:정렬 방식:left|center[/list]는 Panel 영역 에 다음 코드 를 추가 합 니 다
<mx:Panel title="Calculator">
</mx:Panel>
주의:여기 서 우 리 는 Label 의 text 속성 을 설정 하지 않 았 습 니 다.우 리 는 나중에 배경 프로그램 을 통 해 라벨 라벨 의 내용 을 동적 으로 표시 해 야 하기 때문에=======================전체 flex 프로그램의 다양한 요 소 를 찾 을 수 있 습 니 다.Grid 라벨 은 세 가지 요소 로 구성 되 어 있 습 니 다.[list]Grid:HTML 과 유사 한태그 GridRow:HTML 과 유사 한태그 GridItem:HTML 과 유사 한
태그[/list]는 여기에 5 줄 4 열의 Grid 를 추가 합 니 다.그 중에서 첫 줄 과 마지막 행동 3 열 을 추가 합 니 다.코드 는 다음 과 같 습 니 다
<mx:Label id="calcDisplay" width="150" textAlign="right"/>
Grid 가 추 가 된 후의 효 과 는:click for full size=======================계산기 버튼 을 추가 합 니 다.여기 서 우 리 는 단추 의 세 가지 속성 을 사용 할 것 입 니 다.[list]label:단추 에 표 시 된 텍스트 width:단추 너비 click:단 추 를 누 를 때 응답 하 는 이벤트[/list]는 Flex 에서 모든 button 컨트롤 에 같은 형식 을 가지 고 있 습 니 다.우리 위 에서 만 든 18 개의 GridItem 에 1,2,3 을 순서대로 추가 합 니 다.4,5,6,7,8,9,0,.,+,-,*,/,=,Clear,C/E 이 버튼 들 은 다음 과 같다.Row 1
<mx:Grid>
   <mx:GridRow>
      <mx:GridItem colSpan="2"></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem></mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
      <mx:GridItem></mx:GridItem>
      <mx:GridItem ></mx:GridItem>
      <mx:GridItem colSpan="2"></mx:GridItem>
   </mx:GridRow>
  </mx:Grid>
Row 2
	width="70" 
	label="Clear" 
	click="calcController.clearAll()"
 
	width="30"
	label="C/E" 
	click="calcController.clearEntry()"

	width="30"
	label="+" 
	click="calcController.setOperation('add')"
Row 3
	width="30" 
	label="1" 
	click="calcController.addNumber('1')"
	
	width="30" 
	label="2"
	click="calcController.addNumber('2')"
	
	width="30" 
	label="3" 
	click="calcController.addNumber('3')"
	
	width="30" 
	label="-" 
	click="calcController.setOperation('subtract')"
Row 4
	width="30" 
	label="4" 
	click="calcController.addNumber('4')"
	
	width="30" 
	label="5" 
	click="calcController.addNumber('5')"
	
	width="30" 
	label="6" 
	click="calcController.addNumber('6')"
	
	width="30" 
	label="*" 
	click="calcController.setOperation('multiply')"
Row 5
	width="30" 
	label="7" 
	click="calcController.addNumber('7')"
	
	width="30" 
	label="8" 
	click="calcController.addNumber('8')"
	
	width="30" 
	label="9" 
	click="calcController.addNumber('9')"
	
	width="30" 
	label="/" 
	click="calcController.setOperation('divide')"
완료 후 파일 을 저장 하고 button 을 추가 한 효 과 는 다음 과 같다click for full size===================================================================Calculator Controller.as 로 저장 하기 위해 Calculator Controller 의 클래스 를 만 듭 니 다
	width="30" 
	label="0" 
	click="calcController.addNumber('0')"
	
	width="30" 
	label="." 
	click="calcController.addNumber('.')"
	
	width="70" 
	label="=" 
	click="calcController.doOperation()"
그 다음 에 구조 기 를 만 듭 니 다
class CalculatorController
{}
Calculator Controller 에서 다음 변 수 를 설명 합 니 다
public function CalculatorController(){}
이 어 기능 모듈 을 추가 합 니 다."같은"기능 doOperation()
	public var calcView:Object;
	private var reg1:String="";
	private var reg2:String="";
	private var result:Number;
	private var currentRegister:String="reg1";
	private var operation:String="none";
	private var r1:Number;
	private var r2:Number;
숫자 에 들 어 가 는 기능 addNumber()
	public function doOperation():Void
	{
		r1=Number(reg1);
		r2=Number(reg2);
		switch (operation)
		{
			case "add":
				result=r1+r2;
				resetAfterOp();
				break;
			case "subtract":
				result=r1-r2;
				resetAfterOp();
				break;
			case "multiply":		
				result=r1*r2;
				resetAfterOp();
				break;
			case "divide":
				result=r1/r2;
				resetAfterOp();
				break;
			default:
				//do nothing
		}
	}
"C/E"의 기능 clearEntry()
	public function addNumber(n:String):Void
	{
		if (operation=="none" && currentRegister=="reg2")
		{
			reg1="";
			setCurrentRegister();
		}
		this[currentRegister]+=n;
		setDisplay(currentRegister);
	}
"Cle."ar"의 기능 clearAll()
	public function clearEntry():Void
	{
		this[currentRegister]="";
		setDisplay(currentRegister);
	}
"더하기,빼 기,곱 하기,나 누 기"의 기능 set Operation()
	public function clearAll():Void
	{
		reg1="";
		reg2="";
		setCurrentRegister();
		setOperation("none");
		setDisplay(currentRegister);
	}
디 스 플레이 의 기능 set Display()
	public function setOperation(operation:String):Void
	{
		this.operation=operation;
		setCurrentRegister();
	}
기타
	private function setDisplay(register:String):Void
	{
		calcView.calcDisplay.text = this[register];
	}
============================================calculator.mxml
	private function setCurrentRegister():Void
	{
		if (reg1=="")
		{
			currentRegister="reg1";
		}
		else
		{
			currentRegister="reg2";
		}
	}

	private function resetAfterOp():Void
	{
		reg1=String(result);
		reg2="";
		setDisplay("reg1");
		setOperation("none");
	}
Calculator Controller.as
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" xmlns="*">
 <!-- calculator controller -->
 <CalculatorController id="calcController" calcView="{this}"/>
 <!-- calculator view -->
 <mx:Panel title="Calculator">
  <!-- calculator display -->
  <mx:Label id="calcDisplay" width="150" textAlign="right"/>
  <!-- calculator controls -->
  <mx:Grid>
   <mx:GridRow>
    <mx:GridItem colSpan="2">
     <mx:Button width="70" label="Clear" click="calcController.clearAll()"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="C/E" click="calcController.clearEntry()"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="+" click="calcController.setOperation('add')"/>
    </mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
    <mx:GridItem>
     <mx:Button width="30" label="1" click="calcController.addNumber('1')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="2" click="calcController.addNumber('2')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="3" click="calcController.addNumber('3')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="-" click="calcController.setOperation('subtract')"/>
    </mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
    <mx:GridItem>
     <mx:Button width="30" label="4" click="calcController.addNumber('4')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="5" click="calcController.addNumber('5')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="6" click="calcController.addNumber('6')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="*" click="calcController.setOperation('multiply')"/>
    </mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
    <mx:GridItem>
     <mx:Button width="30" label="7" click="calcController.addNumber('7')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="8" click="calcController.addNumber('8')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="9" click="calcController.addNumber('9')"/>
    </mx:GridItem>
    <mx:GridItem>
     <mx:Button width="30" label="/" click="calcController.setOperation('divide')"/>
    </mx:GridItem>
   </mx:GridRow>
   <mx:GridRow>
    <mx:GridItem>
     <mx:Button width="30" label="0" click="calcController.addNumber('0')"/>
    </mx:GridItem>
    <mx:GridItem >
     <mx:Button width="30" label="." click="calcController.addNumber('.')"/>
    </mx:GridItem>
    <mx:GridItem colSpan="2">
     <mx:Button width="70" label="=" click="calcController.doOperation()"/>
    </mx:GridItem>
   </mx:GridRow>
  </mx:Grid>
 </mx:Panel>
</mx:Application>
주소

좋은 웹페이지 즐겨찾기