Краткий ответ: используйте методы getMeasuredOrExplicitWidth () и getMeasuredOrExplicitHeight () .
Во многих случаях высота или ширина будет возвращать те же значения, что и эти методы.
Более длинный ответ:
Какой компонент вы используете? Поскольку вы пометили это Flex, я собираюсь предположить, что это визуальный компонент Flex, который расширяет UIComponent.
У вас есть несколько различных значений высоты, на которые следует обратить внимание, но имейте в виду, что родитель всегда обязан определять размер своих детей. Добавление дочерних элементов в компонент не обязательно изменит его высоту или ширину. Зависит от того, учитывает ли компонент, к которому вы добавляете детей, дочерние элементы.
Сначала взглянем на Измеренная высота и Измеренная ширина . Это предпочтительные значения размера компонента, рассчитанные с использованием метода меры. Некоторые компоненты, такие как HBox или VBox, автоматически «узнают» о своих дочерних элементах и будут использовать их при расчете своего размера. Другие компоненты, такие как UIComponent, не учитывают дочерние элементы при настройке measureHeight или measureWidth.
Во-вторых, вы можете взглянуть на ОчевидныеВысокие и ОчевидныеШирота. Если вы установите высоту или ширину, то эти значения будут установлены. Я не верю, что эти значения установлены, если вы используете метод setActualSize (). Под капотом есть какая-то магия, так что ОчевидныйВысота и Очевидный Ширина маскируются за высотой и шириной. Они часто одинаковы, но не всегда.
Обычно я не имею дело с масштабированием, но если вам нужна немасштабированная высота и ширина компонента, есть защищенные свойства компонента unscaledWidth и unscaledHeight . Я считаю, что это те значения, которые передаются в метод updateDisplayList ().
Имейте в виду, что для изменения размера компонента после добавления или удаления дочерних элементов он должен пройти собственный жизненный цикл. Итак, этот код:
trace(container.width);
container.addChild(myChild);
trace(container.width);
Вероятно, не изменит ширину контейнера, поскольку у контейнера не было возможности запустить методы measure (), updateDisplayList () или commitProperties ().
Если это не поможет, вам нужно будет конкретизировать и предоставить код.