2009-06-08 3 views
0

스크롤없이 응용 프로그램의 높이를 가져 오는 함수가 있습니다. 스크롤 할 필요가없는 높이를 의미합니다.플렉스 (Flex) : 아이들의 키를 얻으십시오 ... 함수를 호출 할 때?

private function getContentHeight():Number 
      { 
       var height:Number = 0; 
       for(var i:uint = 0; i<this.numChildren; i++) 
       { 
        var d:DisplayObject = this.getChildAt(i) as DisplayObject; 
        //trace(d.name+":"+d.height); 
        height += d.height; 
       } 
       height += Number(this.getStyle('verticalGap'))*this.numChildren; 
       height += Number(this.getStyle('paddingTop')); 
       height += Number(this.getStyle('paddingBottom')); 
       return height; 
      } 

이 기능은 잘 작동하지만 전화를 할 때 문제가 알고있다 :

는 기능입니다. 나는 그것으로부터 어떤 아이들을 추가/제거한 후에 그것을 호출 할 것을 계획했다. 그러나 그것은 아직 너무 빨리 나가기 때문에 정확한 높이를 얻지 못하기 때문에 아직 그것을 실행합니다. 내가 현재 가지고있는 수정 프로그램은 자식이 추가/제거 된 후 약 300 밀리 초 동안 함수를 호출하기 위해 타이머를 사용하고 있지만 잘 작동하는 것으로 보이지만 매우 위험한 문제라고 생각합니다. 그래서 나는 더 나은 해결책을 궁금해하고있었습니다. 나는이 기능을 실행할 준비가되었을 때 나에게 말할 수있는 일종의 이벤트가 있어야한다고 생각하고있다. 어떤 이벤트가 될지 모르겠다.

감사합니다.

답변

1

먼저 measuredWidthmeasuredHeight 속성을 확인하십시오 (모든 컨트롤과 컨테이너에 이러한 속성이 있음). flex는 이미 컨테이너의 너비/높이를 요구합니다.

둘째,이 속성을 살펴볼 적절한 곳은 creationCompleteupdateComplete 이벤트입니다. 귀하의 경우에, 당신이 아이들을 programmaticaly 추가하면, 당신은 아이들을 추가 한 후에 updateComplete 이벤트를 처리해야합니다.

관련 문제