Когда я устанавливаю компонент на visible = false, компонент скрывается, но как мне заставить его не занимать места (получить контейнер, к которому он принадлежит, для изменения размера ??)
<mx:HBox width = "100%" height = "100%">
...
</mx:HBox>
<mx:HBox width = "100%" id = "boxAddComment" visible = "false" >
<mx:TextArea id = "txtComment"/>
<mx:Button label = "Spara" click = "addComment();"/>
</mx:HBox>
Когда boxAddComment отображается = false, я хочу, чтобы первый HBox занимал 100% высоту.





используйте свойство includeInLayout. например
<mx:HBox width = "100%" height = "100%">
...
</mx:HBox>
<mx:HBox width = "100%" id = "boxAddComment" visible = "false" includeInLayout = "false" >
<mx:TextArea id = "txtComment"/>
<mx:Button label = "Spara" click = "addComment();"/>
</mx:HBox>
Использование includeInLayout = "true" или "false" переключит пространство, которое оно занимает в потоке элементов, отображаемых в этом разделе.
Важная заметка: Если вы не укажете visible = "false" при использовании includeInLayout = "false", то вы обычно получите что-то нежелательное, а именно то, что ваш элемент (boxAddComment) все еще виден на странице, но содержимое ниже id = "boxAddComment" будет перекрывать его визуально. Итак, в общем, вы, вероятно, хотите, чтобы "includeInLayout" и "visible" синхронизировались.
Предложение Росс Хендерсон связать includeInLayout с boxAddComment.visible отлично работает с Flex 3.0, но я обнаружил, что он не работает в Flex 3.6 (я видел сообщение о том, что он фактически перестает работать с Flex 3.3).
Просто к сведению.
Это может быть хорошим способом синхронизировать два значения:
<mx:HBox id = "boxAddComment" visible = "false" includeInLayout = "{boxAddComment.visible}" >