MXML과 ActionScript에 의한 코딩

  


 

FLEX에서는 MXML ActionScript의 클래스 라이브러리를 사용하여 응용 프로그램을 개발한다.

MXML Adobe Flex 응용 프로그램에서 유저 인터페이스 구성요소를 만들기 위해 사용하는 XML 언어이다.

또한 서버측 데이터에 접근하는 유저 인터페이스 컴퍼넌트와 데이터 소스 사이의 바인딩을 위한 응용프로그램에도 MXML을 사용한다.

 

예를 들면, MXML에서 Button의 인스턴스를 만들기 위해<mx:Button> 태그를 사용한다.

 

<mx:Button id=“myButton” label=“나의 버튼”/>

 

Button 태그에는 나중에 참조하여 사용할 수 있는 유일한 이름으로 ID 속성을 준다.

label 속성은 Button 위에 표시되는 글자를 기술한다.

 

다음은 Button를 표시하는 Flex 응용 프로그램을 만들기 위힌 소스이다.

 

<?xml version=“1.0” encoding=“utf-8”?>

<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” >

 

    <mx:Button id=“myButton” label=“나의 버튼” />

 

</mx:Application>

 

Flex 소스를 기술한 후에는 컴파일을 해야 한다.

Flex 컴파이러는 Flex 2 설치 폴더의 아래에 있는 ‘Flex SDK 2.0\bin’에 있는 ‘mxmlc’로 작은 실행화일이다.

Flex 2가 설치된 \Flex SDK 2.0\bin 에 컴파일러가 있는 것을 확인하여 본다.

 

MyFirst.mxml을 본인이 가장 좋아하는 텍스트 에디터(EditPlus)을 이용하여 새로 만든다.

코드를 입력하고 MyFirst.mxml에 화일을 저장한다.

 


 

Start > All Programs > Accessories > Command Prompt을 선택하여 명령 창을 연다.

 

Command Prompt의 현재 디렉토리를 Flex 응용 프로그램을 저장한 폴더로 이동한다.

 

Flex 컴파이러를 호출하는 다음의 명령을 실행한다.

두개의 대쉬로 시작하는 명령 줄에 있는 --strict 은 컴파일러 옵션이다. 이 옵션은 Flex 컴파이러의 명령을 정의하는 데 이용된다.

위의 예제는 –strict true로 함으로써 어떤 변수형을 다른 변수형으로 할당하는 것을 금지하여 정확한 데이터를 재정의 하도록 유도한다. 이는 이식성이 높은 코드작성에 도움이 된다. (mxmlc 컴파일러편 참조.)

 

Windows Explorer에서의 SWF 화일을 더블클릭하거나 Standalone Adobe Flash Player 9의 파일 열기에 이름을 입력한다.

이 보기는 결과적으로 다음의 SWF 화일이 된다.

그리고, Adobe Flex Builder를 사용하여 Flex 응용 프로그램을 컴파일한다. 이것은 시각적인 디자인 관점을 포함하는 Flex 개발을 위한 Integrated Development Environment  (IDE)이다.(Flex Builder 2 사용하기편 참조)

ActionScript MXML 태그는 ActionScript 클래스이나 클래스의 속성과 일치한다.

Flex 응용 프로그램을 컴파일할 때, Flex MXML tags를 문법적으로 분석하고 일치하는ActionScript 클래스을 생성시킨다.

그리고 나서, SWF 화일에 저장하는 SWF 바이트코드로 이 ActionScript 클래스을 컴파일한다.

Flex가 생성시키는 ActionScript 중계파일을 보기 위해 -keep-generated-actionscript 옵션을 추가하여 mxmlc 명령을 실행하면, generated 폴더가 생기고, 그안에 .as파일들이 생성되는 것을 알 수 있다.

 

Flex Flex Button를 정의하는 ActionScript Button 클래스을 제공한다.

<mx:Button> 태그에 있는 mx namespace이다.

mx mx namespace의 형태로 클래스 이름에 부여된다.

Flex 컴파일러는 mx namespace에서 MXML 태그와 일치하는 ActionScript 클래스을 찾는다.

 

다음의 보기는 Button의 생성에 ActionScript을 어떻게 사용하는지를 보여준다.

그 결과는 MXML 버전과 동일한다.

 

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="creationCompleteHandler();" >

<mx:Script>

 

 <![CDATA[

 

 import mx.controls.Button;

 import mx.events.FlexEvent;

 private var myButton:Button;

 

 private function creationCompleteHandler():void {

 

 // 버튼 인스턴스를 생성하고 라벨를 설정한다.

 myButton = new Button();

 myButton.label = "나의 버튼";

 

 // 버튼 컴퍼넌트의 생성을 알리고, 레이아웃을 만든다.

 myButton.addEventListener(FlexEvent.CREATION_COMPLETE, buttonCreationCompleteHandler);

 

 // 버튼 인스턴스를 표시한다.

 addChild (myButton);

 }

 

 private function buttonCreationCompleteHandler ( evt:FlexEvent ):void {

 

 // 버튼의 위치를 설정한다

 myButton.x = parent.width/2 - myButton.width/2;

 myButton.y = parent.height/2 - myButton.height/2;

    }

 

 ]]>

 

</mx:Script>

</mx:Application>

 

ActionScript를 통해서 Flex 컴퍼넌트를 생성할 때는 컴포넌트 클래스를 반드시 import해야한다.

또한 작성중인 어플리케이션을 가시적으로 만들기 위해 addChild() 멧소드를 사용하여야 한다.

 

이 예제는 MXML 코드의와 비교로, 태그로 작성된 MXML의 코드의 컴퍼넌트 구성이 ActionScript 코드 구성보다 얼마나 단순화 되는지를 보여주고 있다.

이 보기는 결과적으로 위와 같은 SWF 화일이 된다.

 

여기까지는 Flex 응용 프로그램에 ActionScript을 포함하는 Script 태그로써 inline ActionScript의 사용을 예를 들었다.

by 제영이 | 2006/11/10 16:05 | - FLEX 시작하기 | 트랙백 | 덧글(1)

트랙백 주소 : http://flex2.egloos.com/tb/538206
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 검쉰 at 2009/11/28 18:13
-keep-generated-actionscript 오타났네요~ 수정부탁드려요!

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶