| 패키지 | 최상위 레벨 |
| 클래스 | public dynamic class Class |
| 상속 | Class Object |
| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
new 연산자를 사용하여 클래스 객체를 호출하면 클래스의 인스턴스가 만들어집니다.
flash.net.getClassByAlias() 등의 일부 메서드는 Class 유형의 객체를 반환합니다. flash.net.registerClassAlias() 등의 기타 메서드는 Class 유형의 매개 변수를 가질 수 있습니다.
이
class Foo {
}
class Foo{} 문은 Class 객체 Foo를 만드는 클래스 정의입니다. 또한 new Foo() 문은 클래스 Foo의 새 인스턴스를 만들고 결과는 Foo 유형이 됩니다.
클래스를 선언하려면 class 문을 사용합니다. 클래스 객체는 아래 "예제" 부분에서 볼 수 있듯이 런타임에 기존 인스턴스 객체에 클래스를 할당하는 등의 고급 기술에 유용합니다.
클래스의 모든 정적 속성과 메서드는 클래스의 Class 객체에 유지됩니다. 클래스 자체는 prototype을 선언합니다.
일반적으로는 Class 유형의 변수를 직접 선언하거나 만들 필요가 없습니다. 그러나 다음 코드에서는 클래스를 공용 Class 속성 circleClass로 할당하며, 이 Class 속성을 주 Library 클래스의 속성으로 참조할 수 있습니다.
package {
import flash.display.Sprite;
public class Library extends Sprite {
public var circleClass:Class = Circle;
public function Library() {
}
}
}
import flash.display.Shape;
class Circle extends Shape {
public function Circle(color:uint = 0xFFCC00, radius:Number = 10) {
graphics.beginFill(color);
graphics.drawCircle(radius, radius, radius);
}
}
다른 SWF 파일에서 결과 Library.swf 파일을 로드한 다음 Circle 유형의 객체를 인스턴스화할 수 있습니다. 다음 예제에서는 자식 SWF 파일의 에셋에 액세스하는 방법 중 하나를 보여 줍니다. 이외에도 flash.utils.getDefnitionByName()을 사용하거나 자식 SWF 파일의 스텁 정의를 가져오는 등의 방법을 사용할 수 있습니다.
package {
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
public class LibaryLoader extends Sprite {
public function LibaryLoader() {
var ldr:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("Library.swf");
ldr.load(urlReq);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
}
private function loaded(event:Event):void {
var library:Object = event.target.content;
var circle:Shape = new library.circleClass();
addChild(circle);
}
}
}
ActionScript 3.0에서는 SWF 파일로 컴파일된 이미지, 사운드 또는 글꼴 등의 외부 에셋에 대한 포함된 클래스를 만들 수 있습니다. 이전 버전의 ActionScript에서는 MovieClip.attachMovie() 메서드로 링크 ID를 사용하여 이러한 에셋을 연결해야 했습니다. ActionScript 3.0에서는 포함된 각 에셋이 포함된 고유 에셋 클래스로 표현됩니다. 따라서 new 연산자를 사용하여 에셋의 관련 클래스를 인스턴스화하고 해당 에셋의 메서드와 속성을 호출할 수 있습니다.
관련 API 요소
- 두 개의 클래스를
ClassA및ClassB로 선언합니다. classToConstruct라는 Class 유형의 변수와chooseClassA라는 Boolean 유형의 변수를 선언합니다. 여기에서는 부울 값을true로 설정하지만, 직접 만든 테스트 표현식을 사용하여 이 변수의 값을 설정해 볼 수도 있습니다.
package {
import flash.display.Sprite;
public class ClassExample extends Sprite {
public function ClassExample() {
var classToConstruct:Class;
var classInstance:Object;
classToConstruct = ClassA;
classInstance = new classToConstruct();
trace(classInstance); // [object ClassA]
classToConstruct = ClassB;
classInstance = new classToConstruct();
trace(classInstance); // [object ClassB]
}
}
}
class ClassA {
}
class ClassB {
}
Tue Jun 12 2018, 03:17 PM Z
상속되는 공용 속성 숨기기
상속되는 공용 속성 표시