Designing your ActionScript application
AS 어플리케이션의 첫번째 예제는 매우 단순하게 설계된 "Hello World" 이다.
Creating the HelloWorld project and the Greeter class
- File > New > ActionScript file 선택
- File > Save > Greeter.as 저장
Adding code to the Greeter class
Greeter 클래스 : HelloWorld 어플에 사용할 Greeter 객체를 정의
Greating an application that uses your ActionScript code
Greeter 클래스는 함수를 정의하고 있지만, 완전하게 보여지지는 않는다.
클래스를 사용하기 위해서는 플래시 문서를 생성해야 한다.
- File > New > Flash Document 선택
- File > Save > HelloWorld.fla 저장
1. 텍스트 툴을 선택하고 스테이지에 드래그하여 300px * 100px 정도의 새로운 텍스트 필드를 정의.
2. 속성 패널에서 텍스트 유형을 Dyanmic Text로 지정하고, 인스턴스 이름에 mainText를 입력한다.
3. 액션 패널에 다음 스크립트를 입력한다.
- 2줄: mainText 텍스트 필드에 sayHello() 메소드로 반환된 문자열 반환. (Hello World!)
Publishing and testing your ActionScript application
Flash 와 Flex builder 개발 환경은 어플의 테스트 및 디버그, 퍼블리쉬을 위한 몇가지 방법을 제공한다.
어플을 퍼블리시하고 컴파일 에러를 주시하라.
- Control > Test Movie
결과는 아마도 mainText Dynamic 텍스트 필드 안에 "Hello World!" 가 보여질 것이다.
Enhancing the HelloWorld application
어플을 조금더 흥미롭게 하기 위해, 사용자에게 이름을 물어보고 미리 정의된 목록의 이름과 일치하는지를 확인할 것이다.
먼저, 새로운 함수를 추가하기 위해 Greeter 클래스를 변경하고, 새 함수를 사용하기 위해 어플을 변경한다.
1. Greeter.as 파일을 다음의 내용으로 변경한다.
- 배열은 Greeter 클래스가 로드됐을 때 세가지 이름의 목록으로 초기화한다.
- sayHello() 메소드는 사용자 이름을 입력받고 몇가지의 조건에 기반하여 인사말을 변경한다.
- 만약 userName 이 빈 문자열("")이면, greeting 속성은 사용자 이름을 입력받을 준비를 한다.
- 사용자 이름이 일치하면, 인사말은 "Hello, userName."이 된다.
- 마지막에는, 위 두 조건에 해당하지 않은을 경우, greeting 변수는 "Sorry userName, you are not on the list."로 지정된다.
- validName() 메소드는 validNames 배열에서 inputName을 찾을 수 있으면 true, 찾지 못하면 false를 반환한다.
- validNames.indexOf(niputName) 구문은 inputName 문자열에 대해 validNames 배열에서 각각의 문자열을 체크한다.
- Array.indexOf() 메소드는 배열에서 객체의 첫번째 인스턴스의 인덱스 위치를 반환하거나, 배열에서 찾지 못하면 -1 값을 반환한다.
2. HelloWorld.fla 파일을 열고 sayHello() 메소드에 빈 문자열("")을 넘기도록 1번 프레임의 스크립트를 수정한다.
텍스트 툴을 선택하고, 스테이지에서 mainText 텍스트 필드 아래에 새로운 텍스트 필드를 두 개 생성한다.
하나의 텍스트 필드에는 "User Name:" 이란 문구를 넣는다.
다른 텍스트 필드의 속성 창에는, 텍스트 유형을 InputText, 라인 유형을 Single line 선택하고, 인스턴스 이름은 textIn 을 입력한다.
타임라인의 첫번째 프레임의 스크립트 뒤에 다음을 입력한다.
- 입력 텍스트 필드인 textIn은 빠른 처리를 위해 이벤트를 지정한다.
- addEventListener() 메소드는 이벤트 타입이 발생할 때 실행할 함수를 정의하게 한다.
(위 경우에, 이벤트는 키보드의 키를 누르는 것이다. )
- keyPressed() 사용자 함수는 눌려진 키가 Enter 키인지 아닌지를 체크한다.
- Greeter 객체의 sayHello() 메소드를 호출하면, 파라미터로서 textIn 텍스트 필드의 텍스트가 전달되고, 전달된 값에 의해 인사말 문자열을 반환한다.
- 반환된 문자열은 mainText 텍스트필드의 text 속성에 할당된다.
3. 어플을 실행시켜본다 ( Control > Test Movie )
AS 어플리케이션의 첫번째 예제는 매우 단순하게 설계된 "Hello World" 이다.
- 어플리케이션 이름 : Helloworld
- "Hello World!" 문구가 텍스트 필드에 출력
- 재사용을 위해, 플래시 문서나 플렉스 어플리케이션에서 사용될 수 있는 Greeter란 이름의 객체지향 클래스 사용
- 기본 어플을 만든 후에, 사용자가 이름을 입력하고, 사용자 목록을 체크하는 새로운 기능 추가
Creating the HelloWorld project and the Greeter class
- File > New > ActionScript file 선택
- File > Save > Greeter.as 저장
Adding code to the Greeter class
Greeter 클래스 : HelloWorld 어플에 사용할 Greeter 객체를 정의
package
{
public class Greeter
{
public function sayHello():String
{
var greeting:String;
greeting = "Hello World!";
return greeting;
}
}
}
- Greeter 클래스는 "Hello World!" 문자열을 반환하는 sayHello() 메소드를 포함.{
public class Greeter
{
public function sayHello():String
{
var greeting:String;
greeting = "Hello World!";
return greeting;
}
}
}
Greating an application that uses your ActionScript code
Greeter 클래스는 함수를 정의하고 있지만, 완전하게 보여지지는 않는다.
클래스를 사용하기 위해서는 플래시 문서를 생성해야 한다.
- File > New > Flash Document 선택
- File > Save > HelloWorld.fla 저장
1. 텍스트 툴을 선택하고 스테이지에 드래그하여 300px * 100px 정도의 새로운 텍스트 필드를 정의.
2. 속성 패널에서 텍스트 유형을 Dyanmic Text로 지정하고, 인스턴스 이름에 mainText를 입력한다.
3. 액션 패널에 다음 스크립트를 입력한다.
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello();
- 1줄: Greeter 클래스에서 myGreeter 객체를 생성mainText.text = myGreeter.sayHello();
- 2줄: mainText 텍스트 필드에 sayHello() 메소드로 반환된 문자열 반환. (Hello World!)
Publishing and testing your ActionScript application
Flash 와 Flex builder 개발 환경은 어플의 테스트 및 디버그, 퍼블리쉬을 위한 몇가지 방법을 제공한다.
어플을 퍼블리시하고 컴파일 에러를 주시하라.
- Control > Test Movie
결과는 아마도 mainText Dynamic 텍스트 필드 안에 "Hello World!" 가 보여질 것이다.
Enhancing the HelloWorld application
어플을 조금더 흥미롭게 하기 위해, 사용자에게 이름을 물어보고 미리 정의된 목록의 이름과 일치하는지를 확인할 것이다.
먼저, 새로운 함수를 추가하기 위해 Greeter 클래스를 변경하고, 새 함수를 사용하기 위해 어플을 변경한다.
1. Greeter.as 파일을 다음의 내용으로 변경한다.
package
{
public class Greeter
{
// 인사 받을 이름을 정의.
pubilc static var validNames:Array = ["Sammy", "Frank", "Dean"];
// 주어진 이름에 인사하는 함수
public function sayHello(userName:String = ""):String
{
var greeting:String;
if ( userName == "" )
{
greeting = "Hello. please type your user name, and then press the Enter key.";
}
else if ( validName( userName ) )
{
greeting = "Hello, " + userName + ".";
}
else
{
greeting = "Sorry " + userName + ", you are not on the list.";
}
return greeting;
}
// 입력된 이름이 리스트에 있는지 확인
pubilc function validName(inputName:String = ""):Boolean
{
if (validNames.indexOf(inputName) > -1)
{
return true;
}
else
{
return false;
}
}
}
}
- validNames 배열은 유효한 사용자 이름들을 목록화한다. {
public class Greeter
{
// 인사 받을 이름을 정의.
pubilc static var validNames:Array = ["Sammy", "Frank", "Dean"];
// 주어진 이름에 인사하는 함수
public function sayHello(userName:String = ""):String
{
var greeting:String;
if ( userName == "" )
{
greeting = "Hello. please type your user name, and then press the Enter key.";
}
else if ( validName( userName ) )
{
greeting = "Hello, " + userName + ".";
}
else
{
greeting = "Sorry " + userName + ", you are not on the list.";
}
return greeting;
}
// 입력된 이름이 리스트에 있는지 확인
pubilc function validName(inputName:String = ""):Boolean
{
if (validNames.indexOf(inputName) > -1)
{
return true;
}
else
{
return false;
}
}
}
}
- 배열은 Greeter 클래스가 로드됐을 때 세가지 이름의 목록으로 초기화한다.
- sayHello() 메소드는 사용자 이름을 입력받고 몇가지의 조건에 기반하여 인사말을 변경한다.
- 만약 userName 이 빈 문자열("")이면, greeting 속성은 사용자 이름을 입력받을 준비를 한다.
- 사용자 이름이 일치하면, 인사말은 "Hello, userName."이 된다.
- 마지막에는, 위 두 조건에 해당하지 않은을 경우, greeting 변수는 "Sorry userName, you are not on the list."로 지정된다.
- validName() 메소드는 validNames 배열에서 inputName을 찾을 수 있으면 true, 찾지 못하면 false를 반환한다.
- validNames.indexOf(niputName) 구문은 inputName 문자열에 대해 validNames 배열에서 각각의 문자열을 체크한다.
- Array.indexOf() 메소드는 배열에서 객체의 첫번째 인스턴스의 인덱스 위치를 반환하거나, 배열에서 찾지 못하면 -1 값을 반환한다.
2. HelloWorld.fla 파일을 열고 sayHello() 메소드에 빈 문자열("")을 넘기도록 1번 프레임의 스크립트를 수정한다.
mainText.text = myGreeter.sayHello( "" );
텍스트 툴을 선택하고, 스테이지에서 mainText 텍스트 필드 아래에 새로운 텍스트 필드를 두 개 생성한다.
하나의 텍스트 필드에는 "User Name:" 이란 문구를 넣는다.
다른 텍스트 필드의 속성 창에는, 텍스트 유형을 InputText, 라인 유형을 Single line 선택하고, 인스턴스 이름은 textIn 을 입력한다.
타임라인의 첫번째 프레임의 스크립트 뒤에 다음을 입력한다.
mainText.border = true;
textIn.border = true;
textIn.addEventListener( KeyboardEvent.KEY_DOWN, keyPressed );
function keyPressed( event:KeyboardEvent ):void
{
if ( event.keyCode == Keyboard.ENTER )
{
mainText.text = myGreeter.sayHello( textIn.text );
}
}
- 첫 두 줄은 단순히 두 개의 텍스트 필드 테두리를 정의한 것이다.textIn.border = true;
textIn.addEventListener( KeyboardEvent.KEY_DOWN, keyPressed );
function keyPressed( event:KeyboardEvent ):void
{
if ( event.keyCode == Keyboard.ENTER )
{
mainText.text = myGreeter.sayHello( textIn.text );
}
}
- 입력 텍스트 필드인 textIn은 빠른 처리를 위해 이벤트를 지정한다.
- addEventListener() 메소드는 이벤트 타입이 발생할 때 실행할 함수를 정의하게 한다.
(위 경우에, 이벤트는 키보드의 키를 누르는 것이다. )
- keyPressed() 사용자 함수는 눌려진 키가 Enter 키인지 아닌지를 체크한다.
- Greeter 객체의 sayHello() 메소드를 호출하면, 파라미터로서 textIn 텍스트 필드의 텍스트가 전달되고, 전달된 값에 의해 인사말 문자열을 반환한다.
- 반환된 문자열은 mainText 텍스트필드의 text 속성에 할당된다.
3. 어플을 실행시켜본다 ( Control > Test Movie )
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.
,