FLEX: как я могу получить ширину моего объекта linkButton? - PullRequest
0 голосов
/ 18 апреля 2010

Как я могу получить ширину моего объекта LinkButton?

myLinkButton = new LinkButton (); myLinkButton.label = "blabla";
myLinkButton.setStyle ("fontSize", 24);

myContainer.addChild (myLinkButton); трассировка (myContainer.width); // это не работает, потому что я не установил атрибут напрямую

спасибо

1 Ответ

1 голос
/ 18 апреля 2010

Во-первых, что это показывает trace()? Это null или undefined или NaN или просто неправильное значение?

Тогда есть несколько способов придумать, как можно обойти эту проблему:

  • Попробуйте использовать getBounds() или getRect(). Эти методы возвращают объект Rectangle, работающий как ограничивающий прямоугольник DisplayObject (включая все координаты и измерения). Иногда Flex ведет себя немного странно и возвращает неверные / отключенные результаты для координат или размеров объектов.

  • Попробуйте поэкспериментировать с validateSize() и / или measuredWidth. Возможно, вы пытаетесь получить доступ к свойству width слишком рано, чтобы Flex не мог выполнить измерение / разметку во времени.

  • Аналогичная идея: что произойдет, если вы используете myContainer.callLater(trace, [myContainer.width]); (при условии, что ваш myContainer наследуется от UIComponent)? Если вы получите действительный результат, используя callLater(), но не при непосредственном доступе к width, тогда у Flex просто не было возможности создать макет и обновить контейнер.

  • Вы также можете попробовать использовать этот метод , который создает растровое изображение из объекта и возвращает растровое изображение height / width. Это особенно полезно, если у вас есть компоненты с visible = false в вашем контейнере, потому что Flex не очень хорошо обрабатывает невидимые компоненты.

  • Наконец, вы можете попробовать получить доступ к $width в пространстве имен mx_internal и проверить значение этого свойства. Однако использование mx_internal является своего рода очень уродливым взломом, поскольку эти свойства и методы не предназначены для внешнего использования и могут изменяться в любое время (поэтому ваш компонент может перестать работать при выпуске новой версии), поэтому используйте осторожность.

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