This page was saved using jaction on 2006-09-04 8:33:32.
Address: http://flexdocs.kr/docs/flex2/langref/Class.html
Title: Class (Flex™ 2 레퍼런스 가이드)  •  Size: 21580
Package톱 레벨
Classpublic dynamic class Class
InheritanceClass Inheritance Object

Class object는 프로그램내의 각 클래스 정의에 대해서 작성됩니다. Class object는 모두 Class 클래스의 인스턴스입니다. Class object에는 클래스의 정적 property와 Methods가 포함됩니다. new 연산자를 사용해 불려 가면, 클래스 object는 클래스의 인스턴스를 작성합니다.

flash.net.getClassByAlias() 등의 몇개의 Methods는, Class 형의 object를 돌려줍니다. 그 이외의 Methods는,flash.net.registerClassAlias() 등의 Class 형의 Parameters를 가지는 경우가 있습니다.

클래스명은, 다음에 예를 나타내도록(듯이), Class object에의 참조입니다.

 
class Foo {
 }
 

class Foo{} 명령문(statement)는 Class object Foo 를 작성하는 클래스 정의입니다. 또,new Foo() 명령문(statement)는, Foo 클래스의 새로운 인스턴스를 작성합니다. 결과는 Foo 형이 됩니다.

class 명령문(statement)를 사용해 클래스를 선언합니다. 다음의 예로 가리키도록(듯이), Class object는, 실행시에 기존 인스턴스 object에 클래스를 할당한다고 한, 확장된 수법의 경우에 사용합니다.

클래스의 정적 property와 Methods는, 클래스의 Class object에 존재합니다. 클래스 자체는 prototype 를 선언합니다.

통상은, Class 형의 변수를 수동으로 선언 또는 작성할 필요는 없습니다. 다만, 다음에 나타내는 코드에서는, 클래스가 Public의 Class property circleClass 로서 할당할 수 있어 이 Class property를 메인의 Library 클래스의 property로서 참조할 수가 있습니다.

 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 형의 object가 인스턴스화 되는 일이 있습니다. 다음의 예는, child SWF 파일의 Assets에 액세스 하는 1 개의 방법을 나타내고 있습니다. 그 밖에,flash.utils.getDefnitionByName() 를 사용하는지, child 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 파일에 컴파일 되는 외부 Assets (이미지, 사운드, 폰트등)에 대해서 포함(Embed)된 클래스를 작성할 수 있습니다. 이전의 버젼의 ActionScript 에서는,MovieClip.attachMovie() Methods를 사용해, 링키지 식별자에 의해 외부 Assets을 관련짓고 있었습니다. ActionScript 3.0 에서는, 각 포함(Embed)되어 있는 Assets이 고유의 포함(Embed)되어 있는 Assets 클래스에 의해 나타내집니다. 그 때문에,new 연산자를 사용해 Assets의 관련 클래스를 인스턴스화하는 것이나, 그러한 Assets에 대해 Methods나 property를 호출할 수가 있습니다.

예를 들어, MXML 컴파일러를 사용해 SWF 파일을 생성하는 경우, 다음과 같이 Embed되는 클래스를 작성합니다.

[Embed(source="RIGHT.jpg")]
public var imgCls:Class;
 

게다가 이것을 인스턴스화하기 위해서(때문에), 다음의 코드를 추가합니다.

var myImg:Bitmap = new imgClass();
 

View the examples

See also

Object.prototype
new operator
클래스
확장된 테크닉


Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
Public Methods
 Methods정의
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
Examples

다음의 예는, 아래에 나타내는 순서에 따라, Class 오브제크를 사용해, 인스턴스화하는 클래스의 결정을 실행시까지 보류하는 방법을 나타내고 있습니다.
  1. 2 개의 클래스를 ClassAClassB 로서 선언합니다.
  2. classToConstruct 라는 이름의 Class 형의 변수와 Boolean 형의 변수 chooseClassA 를 선언합니다. 이 예에서는, 이 Boolean 형의 변수는 true 로 설정되어 있습니다만, 코드로 custom 테스트식을 사용해 이 변수의 값을 설정할 수가 있습니다.
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 {
}






 

코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트

현재의 페이지: http://flexdocs.kr/docs/flex2/langref/Class.html