|
|
|||||
Регистрация: Nov 2003
Сообщений: 289
|
Flex component lifecycle
Друзья, прошу совета, ковыряюсь с flex component lifecycle и позникает
куча вопросов. 1. Если я расширяю UIComponent с вызовом методов инвалидации вроде все понятно - когда считаю нужным, тогда и вызываю. Однако если расширить например Canvas, он каким-то образом вызывает методы инвалидации когда ему угодно. Например добавляю child'а (знаю что предпочтительны свойства, метод применен для простоты): <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ public function func():void { trace('func'); var l_txt:UITextField = new UITextField(); l_txt.text = "test"; addChild(l_txt); } ... 2. Насколько я понимаю для компонентов с жестко определенными размерами measure не вызывается. Как этого добиться для собственых компонентов расширяющих UIComponent. 3. В какой момент для компонентов с фиксированными размерами устанавливать measuredHeight/measuredWidth. |
|
|||||
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
1. Canvas расширяет Container - базовый класс для почти всех контейнеров во флексе (Box, HBox, VBox & etc). Если посмотреть по коду то вызов идет такой
Container#addChild - > Container#addChildAt -> Container#addingChild - который и вызывает два метода invalidateSize, invalidateDisplayList 2. Вызывается, но потому что у контейнера фикс сайз он не вызывает валидацию у родителя. 3. А зачем? если у него фикс сайз или вы про свой кастомный компонент. Вообще есть три главных метода которые нужно переопределять measure, commitProperties, updateDisplayList Об этом можно тут прочитать - http://livedocs.adobe.com/flex/3/htm...dvanced_2.html |
|
|||||
Регистрация: Nov 2003
Сообщений: 289
|
7thsky™, спасибо за помощь!
Цитата:
Цитата:
Добавлено через 57 минут на третий вопрос отвечу сам - нужно в конструкторе установить explicitHeight/explicitWidth. |
Часовой пояс GMT +4, время: 20:39. |
|
« Предыдущая тема | Следующая тема » |
|
|