2010-08-09 2 views
0

Если у меня есть контейнер, и я установил для параметра clipContent значение true, как мне получить общую высоту детей внутри него? Есть ли способ для этого, не обойдя каждый ребенок и не суммируя высоты? (Для меня это было бы очень сложно, так как у меня есть mx: Tile с переменной шириной, поэтому я не знаю, сколько строк у него есть)Как получить общую высоту контейнера в Flex?

Любые идеи? :)

ответ

0

Iterate над детьми:

var totalHeight : int = 0 
for (i: int = 0; int < container.numChildren; i++){ 
totalHeight += container.getchildAt(i).height; 
} 

Этот код написан в браузере и не тестировалась.

Похоже, вы используете макет стиля плитки, где плитки могут быть разных, неизвестных, ширины. Это правда? Возможно ли это? Если это так, вам может не потребоваться общая высота дочерних элементов контейнера, а общая высота всех строк контейнера. ЕСЛИ так, просто следите за переменной «y».

Что-то вроде этого:

var totalHeight : int = 0 
var largestRowHeight : int = o; 
var previousY : int = 0; 
for (i: int = 0; int < container.numChildren; i++){ 
largestRowHeight = Math.max(largestRowHeight), container.getchildAt(i).height); 
if(previousY != container.getchildAt(i).y){ 
    totalHeight += largestRowHeight; 
    largestRowHeight = 0; 
} 
previousY = container.getchildAt(i).y; 
} 

Последний бит кода даже грубее, чем первый бит.

+0

ну, я думаю, я должен перебирать детей в конце концов ... Спасибо! –

Смежные вопросы