получить ширину динамически созданного пользовательского компонента - PullRequest
1 голос
/ 15 июля 2009

У меня есть несколько пользовательских компонентов, которые получены из UIComponent. Я перегружен updateDisplayList, чтобы они выглядели нестандартно. Я создал макет, который размещает эти пользовательские компоненты, но чтобы правильно разместить их, я должен знать ширину, высоту пользовательских компонентов. Они создаются динамически. После того, как все они созданы (событие creationCompleted сработало для каждого), я пытаюсь их разметить, но свойство width / height все еще равно 0. Я также пытался добавить их на холст перед началом макета.

Итак, мой вопрос, как создать пользовательский UIComponent, который размещается динамически, и узнать его ширину и высоту.

спасибо


редактирование:

Используя пространство имен mx_internal, я могу установить ширину и высоту (используя внутренние поля $ width и $ height), и похоже, что это работает. Но не очень чистое / хорошее решение.

Ответы [ 2 ]

1 голос
/ 15 июля 2009

Если вы наследуете от UIComponent, а не от одного из его подклассов, вы, вероятно, захотите убедиться, что вы реализуете метод measure (), среди прочих. Ознакомьтесь с документацией Flex здесь для получения дополнительной информации о реализации ваших собственных UIComponents - здесь есть много полезной информации, которую вы можете прочитать, но это все, что вам, вероятно, следует знать, если вы производите от UIComponent напрямую:

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html

Надеюсь, это поможет! Вы также можете попробовать опубликовать небольшой код, просто чтобы у нас было что-то более конкретное. Но скорее всего, вы просто не реализуете то, чем должны быть, чтобы получить эти значения. (И ваш инстинкт верен - вам не нужно копаться в mx_internal, чтобы получить то, что вам нужно.)

0 голосов
/ 15 июля 2009

Может быть, это работает?

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight()
...