2009-12-29 3 views
0

시나리오는 다음과 같습니다. mx : Text 객체에 대해 creationComplete 이벤트가 발생하기를 기다렸습니다. 그 시점에서 보호 된 멤버 인 textField의 setTextFormat 메소드에 액세스 할 수 있습니다. (textField는 creationComplete까지 유효하지 않습니다.)이 시점에서 textField.setTextFormat을 통해 수행 된 텍스트 형식화는 텍스트 높이를 증가시킵니다. 하지만 mx : text 자체는 invalidateSize를 호출 할 때까지이 높이 변경을 선택하지 않습니다. 그러나, 내 경우에는 invalidateSize가 전체 텍스트를 다시 그려서 화면에서 깜박이게합니다. 그러나 브라우저 창 크기를 수동으로 변경하면 텍스트가 깜박이지 않고 텍스트 높이가 변경됩니다. 그렇다면 함수 호출을 통해 브라우저 윈도우 크기를 수동으로 변경할 때 일어나는 일을 어떻게 처리 할 수 ​​있을까요? (단지 mx : text가 textfield.setTextFormat을 통해 수행 된 높이 변경을 선택하기를 원합니다.)스크린 플래시가없는 InvalidateSize?

답변

0

텍스트 필드를 스프라이트 또는 무비 클립에 넣고 콜백으로 크기를 조정하려고 했습니까?

+0

변경할 수없는 컨테이너와 하위 개체 등의 기존 복잡한 구조가 있습니다. 내가 아는 전부는, 문제의 Text 객체에서 invalidateSize를 호출하면 크기가 조정되지만 허용되지 않는 화면으로 깜박입니다. 방금 브라우저의 크기를 조정하면 텍스트 컨트롤도 크기가 조정되지만 화면은 깜박이지 않습니다. 문제는 브라우저를 수동으로 크기를 조정할 때 일어나는 일이며, invalidateSize를 호출 할 때 발생하는 텍스트의 어리석은 플래시없이 Text 객체가 높이를 변경하도록 코드에서 어떻게 수행 할 수 있는지입니다. – Mark

+0

나는 Mx : Text의 공개 필드 속성이 mx : Text와 완전히 일치하지 않기 때문에 Mx : Text의 텍스트 필드 속성이 보호된다는 이유가 있다고 생각합니다. 하지만 setTextFormat은 textField를 통해서만 액세스 할 수 있으므로 사용해야합니다. 그래서 어떻게 든 지금, mx : 텍스트 자체에 "너의 textField 속성에서 발생하는 무언가 때문에 너의 키가 바뀌 었어."라고 말할 필요가 있습니다. 하지만 Text.invalidateSize()를 통해 그렇게하면, 내가 원하지 않는 화면이 깜박입니다. – Mark

0

내가 사실) (txt1.ui_txtfld에 대한 호출 후 즉시

txt1.invalidateSize();  
    txt1.validateNow(); 

를 호출하여 화면 플래시를 방지 할 수 있었다

invertedspear합니다.는 setTextFormat (....)

(ui_txtfld()는 protected 속성 textField를 어떻게 보이게 할 것인가입니다.)

그러나 내 코드의 다른 곳에서도 txt1.height를 참조하지 않아야합니다. 직접으나,

(txt1.ui_txtfld().되는 textHeight + 4) * txt1.scaleY에서, txt1.textField.textHeight 속성과

가 txt1 반면 즉시에서는 TextField의 높이를 변경 한 후 유효 . 높이는 없습니다.