[AS3] Inspectable 변수 초기화

Programming 2013. 10. 3. 09:45 by 빠재

protected var _checked:Boolean;  [Inspectable(defaultValue="true")] public function get checked () { return _checked; } public function set checked (value:Boolean) { _checked = value } 

보통 이런 식으로 Inspectable 변수를 지정하여 플래시 에디터 내에서 값을 자유자재로 바꿀 수 있다. 지정한 값은 플래시가 생성자를 호출한 이후 알아서 set 함수를 호출하여 세팅해 준다.

그런데 주의할 점은 최적화 때문에 그런지는 몰라도 defaultValue로 명시한 값과 플래시 에디터 내에서 설정한 값이 같은 경우 플래시가 알아서 set함수를 호출해주지 않는다는 것이다. 만약 저 set 함수에 변수 세팅 말고도 다른 작업을 한다면, 그 작업이 이루어지지 않아 여파가 있을 수 있다.

이에 대해서는 두 가지 정도 해결 방법이 있다.

  1. Inspectable 태그에서 defaultValue를 사용하지 않는다
  2. 생성자에서 명시적으로 set(기본값) 을 호출하여 미리 기본값이 세팅되어 있도록 한다

어도비가 이런 식으로 플래시 최적화에 많은 노력을 기울이는 것 같지만 난 이것때문에 구글링과 디버깅에 하루를 날렸다 -_-;;

구글나라에는 나와 같은 현상을 겪은 사람이 없나보다..

Nav