Adobe 에서는 Flash Player 10 부터 TLF( Text Layout Framework ) 를 제공하고 있다. 기존 TextField 를 사용하는 방식은 사용 방법이 편하긴했지만, 텍스트를 다루는데 기능적으로나 퍼포먼스 측면에서 부족한게 많았다.
TLF 에서는 이러한 단점들을 Text 를 다루는 Flash Player 의 low level 에 접근하는 프레임워크를 제공하므로 부분적으로 해결되고 있는 움직 임이다. 더 자세한 내용은 Adobe Labs - TLF 에서 확인 가능 하다.
사용 방법은 Adobe Labs 에 자세히 나와 있고, 한가지 주의할 점은 Flash CS5 에서 작업할때 Actionscript 3.0 Settings 패널에서 Runtime Shared Library Settings 가 Runtime shared library(RSL) 로 되어 있는데 이 설정은 textLayout.swc를 외부에서 불러와서 사용하기 때문에 외부 서버 상태에 따라 로딩 지연이 있을수 있으니 swf의 용량이 증가되더라도 Merged into code 로 바꿔 주는게 좋다.
문제는 TLF 를 사용한 프로젝트에서 loaderInfo 에 있는 FlashVars 를 접근할때 parameters 에 있는 값들이 null 로 인식 되는 버그가 있다. Main.swf 에서 TLF 를 로드하는 과정에서 loaderInfo 가 달라져서 발생하는 문제 인데 다음과 같은 방법으로 해결 가능 하다.
if (stage) { init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); } function init( e:Event = null ):void { var flashVars:Object = {}; removeEventListener(Event.ADDED_TO_STAGE, init); if (parent != null && parent.parent != null) { flashVars = parent.parent.loaderInfo.parameters; } else { flashVars = this.root.loaderInfo.parameters; } }
TLF flashvars bug : http://forums.adobe.com/message/3259520?tstart=0
'Actionscript3.0' 카테고리의 다른 글
[AS3] Flash 로 오디오 플레이어 만들기 (4) | 2011.03.05 |
---|---|
[AS3] callback 과 dispatchEvent (9) | 2010.06.13 |
[AS3] Internet Explorer(IE) 에서 #2032 스트림 오류입니다. (0) | 2010.05.23 |