웹디자인 강의
Flash [ 플래시 2004 프로페셔널 ] AS2.0 클래스를 사용하기 위해서 이해해야 할 키워드
2004.02.25 19:35
클래스 작성을 위해서 알아두어야 할 키워드는 다음과 같습니다.
dynamic, extends, implements, import, interface, new, static, public, private, Object.registerClass(), prototype, __proto__, super()
이것에 대해서 살펴봅니다.
dynamic
dynamic는 동적이라는 의미를 가진 단어로 클래스를 생성시 dynamic로 선언한 후 main에서 클래스 인스턴스주소를가리키는 레퍼런스에서는 클래스에 존재하지 않는 속성과 메서드를 추가적으로 만들 수 있게 됩니다.
extends
클래스를 상속받을 때 사용합니다.
implements
플래시에서는 자바처럼 상속이 단일화로 이루어지기 때문에 여러가지 형태의 다중 클래스 개념을 만들려면 인터페이스를 구현(implements)해 주어야 합니다.
import
import는 외부 패키지 또는 클래스를 현재 위치로 불러들일 때 사용합니다.
이 키워드는 문장의 제일 선두에 위치해야합니다.
다음처럼 사용할 수 있습니다.
import className
import packageName.*
interface
플래시 클래스에서는 클래스의 다중상속을 금하고, 다중상속이 필요한 경우 interface를 만들어서 사용하는 것을 권합니다.
인터페이스(interface)는 가장적으로 존재하기에 사양서와 같은 형태를 나타냅니다. 가령 함수는 함수호출부와 함수정의부로 나뉘어 진다면 함수호출부와 같은 역할을 하는 것이 interface입니다. 인터페이스에서는 클래스에서 필요한 기능의 이름을 담고 있습니다.
인터페이스를 구현(implements)하기 위해서는 implements 라는 키워드를 클래스에서 사용할 수 있습니다.
자세한 것은 인터페이스(interface)를 참조하십시요.
new
new는 키워드로 자유기억영역에 상점을 만들 때 사용되는 도구입니다. 상점은 곧 실존화된 객체를 나타냅니다.
static
static의 경우 크게 두가지로 사용합니다.
첫번째는 숫자데이터형의 값을 가진 카운트 변수가 해당 클래스 멤버를 사용할 때마다 값을 증가시키고자 할때입니다.
두번째의 경우는 메인(.fla)에서 클래스 메서드 혹은 속성에 객체를 사용하지 않고 클래스명을 빌려 사용할 때입니다.
첫번째와 두번째 모두 프로그램에서 유용하게 사용될 수 있습니다.
public
public 키워드는 범용 객체를 만들 때 사용합니다. 보통 접근제어자 혹은 수정자라고 부릅니다.
플래시액션스크립트파일(.as)에서 변수나 메서드를 선언시 이 접근제어자를 사용하지 않을 경우 플래시 멤버들은 기본이 public로 적용을 받습니다.
private
private는 public와 같이 플래시에서 사용되는 유일한 접근제어자입니다.
이 키워드를 사용하게 되면 외부 프로그램에서 값을 보호받을 수 있는 장점이 있습니다.
Object.registerClass()
이 메서드는 무비클립과 클래스와 합병시 주로 사용하던 유용한도구입니다.
동적일 때 개체를 복제시킬 수 있는 장점이 있으며 클래스파일을 반드시 사용해야 합니다.
AS1.0에서 사용하는 형태입니다.
prototype
상속사실이라고도 말합니다.
AS2.0에서는 public와 extends가 prototype의 일을 대부분 맡아서하게 됩니다.
여기서 대부분이라는 것은 prototype가 하는 모든 일을 public, extends를 사용해서 다 할 수는 없다는 것입니다.
특히 텍스트필드를 상속시킬 때 AS2.0으로는 불가능합니다.
ex)
TextField.prototype.onSetFocus = fucntion()
{
// any statement(s)
}
텍스트 필드를 만들게 되면 자동으로 onSetFocus에서 설정해놓은 것을 상속받게 되지만 AS2.0으로는 불가능합니다.
__proto__
이 키워드는 prototype와 연관지어져 있습니다.
AS2.0으로 말한다면 public, extends와 연관되며, 범용상속된 클래스 멤버를 보관하게 됩니다.
해당 객체가 가진 메서드 및 속성을 조사하고자 할 때 유용하게 사용될 수 있습니다.
AS2.0에서는 prototype형태를 구현하기 위해서 대신 사용되기도 합니다.
ex)
Instance01.__proto__ = new SomeClass();
super()
super의 경우는 상 하위 클래스 관계일 때 상속을 위해서 사용됩니다.
서브클래스가 수퍼클래스의 모든 것을 물려받았을 경우 서브클래스는 수퍼클래스를 초기화시켜줄 의무가 있습니다.
즉, 수퍼클래스를 초기화시킬 때 사용하는 상위 클래스에 대한 레퍼런스입니다.
현재에 대한 레퍼런스는 this를 제공하고 있습니다.
이제 클래스 작성하려면 다음과 같이 작성할 수 있습니다.
[]첨자로 된 부분은 옵션이므로 생략될 수 있습니다.
클래스 작성의 스펙은 다음과 같다.
[dynamic] class className [ extends superClass ][ implements interfaceName [, interfaceName... ] ]
{
// class definition here
}
이것을 바탕으로 이제 클래스를 만들 수 있습니다.
----------------------------------------------
[Fc]
+I'm from your friendsofed Fc
+http://www.ysbn200.com
+http://www.flashconference.co.kr
+한국 플래시컨퍼런스 코리아
+jk9089@hanafos.com
dynamic, extends, implements, import, interface, new, static, public, private, Object.registerClass(), prototype, __proto__, super()
이것에 대해서 살펴봅니다.
dynamic
dynamic는 동적이라는 의미를 가진 단어로 클래스를 생성시 dynamic로 선언한 후 main에서 클래스 인스턴스주소를가리키는 레퍼런스에서는 클래스에 존재하지 않는 속성과 메서드를 추가적으로 만들 수 있게 됩니다.
extends
클래스를 상속받을 때 사용합니다.
implements
플래시에서는 자바처럼 상속이 단일화로 이루어지기 때문에 여러가지 형태의 다중 클래스 개념을 만들려면 인터페이스를 구현(implements)해 주어야 합니다.
import
import는 외부 패키지 또는 클래스를 현재 위치로 불러들일 때 사용합니다.
이 키워드는 문장의 제일 선두에 위치해야합니다.
다음처럼 사용할 수 있습니다.
import className
import packageName.*
interface
플래시 클래스에서는 클래스의 다중상속을 금하고, 다중상속이 필요한 경우 interface를 만들어서 사용하는 것을 권합니다.
인터페이스(interface)는 가장적으로 존재하기에 사양서와 같은 형태를 나타냅니다. 가령 함수는 함수호출부와 함수정의부로 나뉘어 진다면 함수호출부와 같은 역할을 하는 것이 interface입니다. 인터페이스에서는 클래스에서 필요한 기능의 이름을 담고 있습니다.
인터페이스를 구현(implements)하기 위해서는 implements 라는 키워드를 클래스에서 사용할 수 있습니다.
자세한 것은 인터페이스(interface)를 참조하십시요.
new
new는 키워드로 자유기억영역에 상점을 만들 때 사용되는 도구입니다. 상점은 곧 실존화된 객체를 나타냅니다.
static
static의 경우 크게 두가지로 사용합니다.
첫번째는 숫자데이터형의 값을 가진 카운트 변수가 해당 클래스 멤버를 사용할 때마다 값을 증가시키고자 할때입니다.
두번째의 경우는 메인(.fla)에서 클래스 메서드 혹은 속성에 객체를 사용하지 않고 클래스명을 빌려 사용할 때입니다.
첫번째와 두번째 모두 프로그램에서 유용하게 사용될 수 있습니다.
public
public 키워드는 범용 객체를 만들 때 사용합니다. 보통 접근제어자 혹은 수정자라고 부릅니다.
플래시액션스크립트파일(.as)에서 변수나 메서드를 선언시 이 접근제어자를 사용하지 않을 경우 플래시 멤버들은 기본이 public로 적용을 받습니다.
private
private는 public와 같이 플래시에서 사용되는 유일한 접근제어자입니다.
이 키워드를 사용하게 되면 외부 프로그램에서 값을 보호받을 수 있는 장점이 있습니다.
Object.registerClass()
이 메서드는 무비클립과 클래스와 합병시 주로 사용하던 유용한도구입니다.
동적일 때 개체를 복제시킬 수 있는 장점이 있으며 클래스파일을 반드시 사용해야 합니다.
AS1.0에서 사용하는 형태입니다.
prototype
상속사실이라고도 말합니다.
AS2.0에서는 public와 extends가 prototype의 일을 대부분 맡아서하게 됩니다.
여기서 대부분이라는 것은 prototype가 하는 모든 일을 public, extends를 사용해서 다 할 수는 없다는 것입니다.
특히 텍스트필드를 상속시킬 때 AS2.0으로는 불가능합니다.
ex)
TextField.prototype.onSetFocus = fucntion()
{
// any statement(s)
}
텍스트 필드를 만들게 되면 자동으로 onSetFocus에서 설정해놓은 것을 상속받게 되지만 AS2.0으로는 불가능합니다.
__proto__
이 키워드는 prototype와 연관지어져 있습니다.
AS2.0으로 말한다면 public, extends와 연관되며, 범용상속된 클래스 멤버를 보관하게 됩니다.
해당 객체가 가진 메서드 및 속성을 조사하고자 할 때 유용하게 사용될 수 있습니다.
AS2.0에서는 prototype형태를 구현하기 위해서 대신 사용되기도 합니다.
ex)
Instance01.__proto__ = new SomeClass();
super()
super의 경우는 상 하위 클래스 관계일 때 상속을 위해서 사용됩니다.
서브클래스가 수퍼클래스의 모든 것을 물려받았을 경우 서브클래스는 수퍼클래스를 초기화시켜줄 의무가 있습니다.
즉, 수퍼클래스를 초기화시킬 때 사용하는 상위 클래스에 대한 레퍼런스입니다.
현재에 대한 레퍼런스는 this를 제공하고 있습니다.
이제 클래스 작성하려면 다음과 같이 작성할 수 있습니다.
[]첨자로 된 부분은 옵션이므로 생략될 수 있습니다.
클래스 작성의 스펙은 다음과 같다.
[dynamic] class className [ extends superClass ][ implements interfaceName [, interfaceName... ] ]
{
// class definition here
}
이것을 바탕으로 이제 클래스를 만들 수 있습니다.
----------------------------------------------
[Fc]
+I'm from your friendsofed Fc
+http://www.ysbn200.com
+http://www.flashconference.co.kr
+한국 플래시컨퍼런스 코리아
+jk9089@hanafos.com