В Flex, как я могу получить размеры компонента бездетного холста во время выполнения? - PullRequest
0 голосов
/ 10 апреля 2009

Один из моих компонентов выглядит так:

<mx:Canvas id="grid" width="100%" height="100%"></mx:Canvas>

В creationComplete я загружаю некоторый спирт, который хочу масштабировать и позиционировать на основе размеров холста, чтобы создать собственный макет сетки, но когда я получаю доступ к размерам сетки, я получаю 0 и 0. Есть ли какие-либо способ получить размеры без присвоения абсолютных значений?

Ответы [ 4 ]

0 голосов
/ 11 апреля 2009

Вы пытались связать ширину и высоту холста с его родителем? Если он равен 100%, он будет иметь тот же размер, что и его родительский элемент, и вы можете либо связать, либо определить размер вашего Sprite (UIComponent) на основе родительского контейнера Canvas.

0 голосов
/ 11 апреля 2009

Насколько я понимаю, если Canvas не содержит одного или нескольких дочерних объектов DisplayObject, он всегда будет сообщать о своих свойствах ширины и высоты как 0, независимо от того, какие размеры в процентах вы к нему применили.

В Canvas всегда можно добавить пустой фиктивный объект DisplayObject, но это будет не очень элегантно. В зависимости от того, как вы планировали реализовать свою собственную сетку, возможно, вам придется пересмотреть дизайн ...

0 голосов
/ 11 апреля 2009

Возможно, он создан, но еще не отображается (например, видимый)? Так как окончательный размер и форма получены, это не произойдет, пока вещь фактически не должна быть нарисована. Ширина и высота задокументированы как значения, которые фактически используются - даже есть события, когда они меняются.

В худшем случае попробуйте перехватить его в событии изменения размера холста.

0 голосов
/ 10 апреля 2009

В данный момент я не могу проверить это, но можете ли вы получить доступ к измеренной высоте и измеренной ширине?

...