Flex: получить рост детей ... когда вызывать функцию? - PullRequest
0 голосов
/ 09 июня 2009

У меня есть функция, которую я написал, которая получает высоту приложения без прокрутки. Это означает, что высота не должна быть прокручиваться.

Это функция:

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 Ответ

1 голос
/ 09 июня 2009

Прежде всего, взгляните на measuredWidth и measuredHeight свойства UIComponent (поэтому все элементы управления и контейнеры имеют эти свойства), flex уже измеряет необходимую ширину / высоту контейнеров.

Во-вторых, правильное место для просмотра этих свойств - события creationComplete и updateComplete. В вашем случае, если вы добавляете некоторых детей программно, вы должны обработать событие updateComplete после того, как вы добавили своих детей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...