현재 진행중인 작업에서 텍스트 편집 기능을 만들다가 텍스트필드 관련 플래시 플레이어 버그를 하나 발견했습니다. 텍스트필드에서 Event.CHANGE 이벤트가 발생했을 때, 텍스트필드의 높이가 변하는 경우 scrollV나 maxScrollV값이 제때 반영되지 않습니다.
만일 CHANGE 이벤트를 사용하여 텍스트 스크롤바와 같은 기능을 개발한다고 하면, 이로 인해서 오류가 발생할 여지가 생기는 것이죠. 그래서, 일단 이 내용을 어도비에 버그로 신고해 두었습니다.
http://bugs.adobe.com/jira/browse/FP-7234
어도비의 담당자도 문제 재현했다고 코멘트를 단 것으로 보아, 언제가 될지는 모르지만, 향후 플래시 플레이어 업데이트에서 수정 될 것으로 기대됩니다.
그렇다고 그때까지 마냥 기다릴 수만은 없으므로, 이 문제를 우회하는 방법도 공유합니다. 해결책은 매우 간단한데, TextField.height와 TextField.textHeight를 호출해 주기만 하면 됩니다.
아래 샘플의 첫 번째 텍스트필드를 보면, 텍스트 편집 시에 엔터키를 눌러 텍스트필드의 크기가 변했을 때 scrollV와 maxScrollV가 제대로 반영되지 않는 것을 볼 수 있습니다.
세 번째의 경우처럼, height와 textHeight를 호출해 주기만 하면 두 속성이 모두 정상적으로 변경된 것을 확인할 수 있습니다. 아마도 스크롤 관련 값을 업데이트하는 코드가 높이를 설정하는 코드에 들어가 있기 때문인 것으로 추측되네요.
두 번째와 같이 height나 textHeight 중 하나만 호출해도 오동작을 하므로, 꼭 두 개의 속성을 함께 호출해 주어야 합니다.