Properties 창에서 ActionScript Settings 의 Edit 버튼을 누르면 오른쪽과 같은 팝업창이 뜹니다.
거기서 Stage : Automatically declare stage instances 옵션을 해제 합니다.
디폴트 값은 체크되있습니다.
이 옵션은 스테이지에서 생성한 인스턴스드들을 자동으로 멤버변수로 선언해주는 옵션입니다.
이 옵션은 반드시 끄고 사용해야합니다.
수많은 컴파일 에러와 런타임 에러를 동반하는 무서운 옵션이랍니다...
뭔 소리냐니깐
스테이지에서 임의의 무비클립을 생성하고 properties 창의 name 부분에 "mc" 라고 이름을 적어 둡니다.
일반적으로 저렇게 한뒤 메인 클래스 파일에서 this.getChildByName("mc") 나 this.mc 이런 식으로 접근합니다.
근데 properties 창에 적는 인스턴스 네임은 그 객체의 name 속성입니다.
가령
var obj:Sprite = new Sprite();
obj.name = "kim";
이런 식으로요. 저기의 "kim" 가 properties 창의 인스턴스 네임에 해당하는 부분입니다.
즉 네임 이란건 해당 sprite 객체의 name 이라는 속성이며
저 예시에서 obj 라는 변수는, 메모리에 저장된 Sprite 객체를 참조하는 변수 이름입니다.
Automatically declare stage instances 옵션은
코드가 아닌 fla 에서 생성된 인스턴스들을 자동적으로 변수로 선언해주는 옵션인겁니다.
즉 properties 의 인스턴스 네임 창에 kim 이라는 속성값을 넣으면
자동적으로 해당 클래스에 "kim" 이라는 멤버변수를 선언하는 겁니다.
그런데 이 옵션을 꺼야 하는 이유가 이미 선언되어있는 멤버변수를 뒤엎어서 컴파일 하기때문에
갖가지 컴파일 에러를 발생시키며 멤버변수를 상위 클래스로 상속할 수없게하는 단점이 있습니다.
꼭 꺼야 하는 옵션중의 하나입니다.
아마 저 옵션을 끄고 평소 처럼 fla 에서 무비클립 인스턴스를 만들고
인스턴스 네임을 적고 바로 컴파일해보면 에러가 뜨는 것을 보실수 있습니다.
저 옵션을 끈 이후에는 클래스에 직접 멤버변수 선언을 해주어야 합니다.
위 예처럼 인스턴스 네임이 "kim" 으로 적어 뒀다면
해당 클래스에 public var kim:MovieClip; 이런 선언이 필요합니다.
언듯 귀찮을 듯하지만, 원인 모를 컴파일에러와 런타임 에러를 막기 위해서 필수적으로 꺼줘야 할 옵션인것 같습니다.
'코드 > ActionScript & MXML' 카테고리의 다른 글
applicationComplete (0) | 2014.01.12 |
---|---|
플렉스 코딩 폰트 변경 (0) | 2013.01.07 |
Object["String"] (0) | 2011.05.06 |
스케일폼 4.0에서 AS3.0 지원 (0) | 2011.04.02 |
NetStream 클래스에서 NetStatusEvent, onMetaData (0) | 2011.02.16 |