![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2003
Сообщений: 290
|
Друзья, прошу совета, ковыряюсь с 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
Сообщений: 290
|
7thsky™, спасибо за помощь!
Цитата:
Цитата:
Добавлено через 57 минут на третий вопрос отвечу сам - нужно в конструкторе установить explicitHeight/explicitWidth. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|