[AS3] TextField.htmlText 속성 문제

Programming/ActionScript 3.0 2007. 11. 12. 22:33
작업한 파일을 주말 동안 브라우저에 올려 놓고 몇 시간을 놔두었더니 CPU 점유율이 서서히 올라간다. 어디서 문제가 있는지 고민해 보았는데 이상하게도 메모리에는 이상이 없는 것 같은데 유독 CPU 점유율만 서서히 상승하는 것이다. 그래서 몇 개의 클래스를 두고 하나 하나 테스트를 해봤는데 결국 예전에 만들었던 DZeroNumber.as 클래스에서 문제가 있는 것으로 나타났다.

그런데 그 클래스 내에서도 특별히 문제가 될만한 곳을 발견하지 못하였는데 결국 생각지도 못한 곳에서 문제가 발생하고 있었다. DZeroNumber 클래스에서는 지정한 텍스트 필드에 00000 부터 지정한 숫자만큼 다이나믹하게 넘버링 하는 기능을 하고 있는데 그 클래스에서 000에 해당하는 부분과 실제 숫자에 해당하는 부분의 색을 달리하기 위해 TextField.htmlText 속성에 html 태그를 포함한 String을 넣고 있었다. 그런데 이 htmlText 속성이 문제가 있다.

TextField.text = "String" 을 넣을 때에는 CPU 점유율이 고정이지만 하나의 TextField에 htmlText속성을 통해서 html 태그를 포함한 String을 주기적으로 넣었을 때는 html 태그를 렌더링하는 과정에서 CPU 점유율이 점차적으로 상승한다. 그리고 이 상승하는 CPU 점유율은 swf파일이 종료되지 않는 이상 떨어지지 않는다.

TextField.htmlText = "<b> text </b>"

위와 같은 형태로 html 태그를 계속해서 TextField.htmlText에 넣게 되면 점차적으로 CPU 점유율이 100%를 향해 달려가니 주의가 필요하다.
    

설정

트랙백

댓글

  • cmr 2007.11.13 15:30 ADDR 수정/삭제 답글

    헙 ㅠㅠ 요즘 아주 이런 이슈들이 많죠......그노메 GC는 알다가도 모를녀석인데다가...
    이런 문제까지.. ㅠㅠ

    • jasu 2007.11.14 09:33 신고 수정/삭제

      htmlText 속성의 문제 같은 경우는 경험하지 않으면 다른 곳에서 헤매기 쉬울 듯 싶네요^^ 그래도 믿어야지요..

  • chadol 2008.06.05 15:05 ADDR 수정/삭제 답글

    진짜 만 하루 돌려놨더니 CPU 가 1% 에서 30% 까지 올라 갔네요. 그렇다고 htmlText 을 안 쓸수도 없는 상황이고 참 답답하네요~^^

    • jasu 2008.06.11 21:40 신고 수정/삭제

      안에서 어떻게 렌더링 되는지 모르겠지만 다음 플래시플레이어 버전에서는 텍스트필드 기능이 좋아지니 해결되지 않을까요? ^^