패키지 | 최상위 레벨 |
클래스 | 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