지금 설명할 방법은 간단히 말해서 꽁수입니다.


CLIK 기반의 스케일폼에서 함수 하나만 오버라이딩 하면 바로 적용되는 궁극의 필살기(?)입니다.


public function invalidate():Void
{
	if (invalidationIntervalID)	return;
	invalidationIntervalID = setInterval(this, "validateNow", 5);
}

끝났습니다 :)


UIComponent 클래스를 파본 분은 아시겠지만, 원리는 이렇습니다.


렌더링을 바로 1ms 마다 하게 됩니다. 정확히는 draw 함수를 1ms 마다 실행하지요. 그 시간을 늘려주는 겁니다.


바로 위의 코드에 숫자로 써있는 5가 바로 5ms 로 늘려준 겁니다. 확실하게 테스트를 해보시려면 한 500 정도 줘보시면 됩니다. 그러면 이론상 0.5초마다 렌더링 되겠지요..

(as3 는 시간이 아닌 프레임 단위입니다. 응용해보시길...)


이런 코드를 최적화할 녀석들에게만 적용해줍니다. 당연하게도 이 함수를 적용한 컴포넌트만 적용됩니다


(물론 성능보다 반응성이 중요한 UI 요소에는 추천하지 않습니다.)


물론 위의 방법은, UIComponent 클래스에서 제시(?)하는 대로 draw 함수 단에 대부분의 렌더링 될 요소들의 변경점을 정의하였을 경우 크게 이득이 생길 겁니다.




Posted by 미나토

댓글을 달아 주세요