it leader


내가 만든 클래스를 다이나믹 클래스 처럼 사용하고 싶을 떄


package

{

dynamic public class ""  // 클래스 앞에 dynamic을 붙여준다

{



※ 주로 사용되지는 않는다.






다음과 같은 dog라는 클래스가 있을 때


package

{

dynamic public class Dog()

{

public var age: int = 2;

public var name : String = "";

public var weight : Number = 20;


public function Dog()

{




}

}

}


<!---------------------------------------------------------->


var obj : Object = {};

obj.age = 50;

obj.name = "해피";

obj.weight = 20;


var dog : Dog = new Dog();

var xml : XML = describeType(dog);


trace(xml);

==>

<type name="com::Dog" base="Object" isDynamic="true" isFinal="false" isStatic="false">

  <extendsClass type="Object"/>

  <variable name="age" type="int"/>

  <variable name="name" type="String"/>

  <variable name="weight" type="Number"/>

</type>


for( var i : int  = 0 ; i < xml.varibale.length() ; i ++)

{

var item : String = xml.variable[i].@name;

dog[item] = obj[item];

}


trace(dog.name);   // => 해피

trace(dog.age);    // => 20


// 추가로 dog.address를 하려면 변수를 따로 입력해 주어야 하지만.

// dog 클래스에서 dynamic을 입려해 줌으로써 dog.address를 바로 사용가능함.


dog.address = "서울시 우리집";


trace(dog.address); 





  • object 클래스에서 변수를 선언방법

-   obj.변수

=>  obj["변수"]


ex)

.변수 <==> ["변수"]

.무비클립 <==> ["무비클립"]







profile

it leader

@dev__pixui

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!