![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
Для SkinableComponent.
Создал свой компонент, заполняемый динамическими компонентами. Но соседние элементы не видят его фактических размеров. Не могу понять, где рассчитываются размеры компонента после прорисовки или изменения свойств. Раньше при изменении параметров(влияющих на размеры) вызывал invalidateSize(), и соответственно расчитывал размеры в measure(). Сейчас после invalidateSize(), но measure() не вызывается.. p.s. И еще, методы создающие динамические компоненты вроде как должны вызываться в partAdded(). Но там через раз вызывается ошибка, что: Цитата:
|
|
|||||
|
Размеры SkinnableComponent определяются размерами его скина.
Цитата:
P.S. Для начала изучите это http://www.adobe.com/ru/devnet/flex/...kintro_03.html |
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
Вот это:
[SkinPart(required = "true", type = "spark.components.supportClasses.SkinnableComponent")] public var myDynamicCreatComponent:IFactory; <fx:Declarations> <fx:Component id="myDynamicCreatComponent"> <s:Label /> </fx:Component> </fx:Declarations> private function createDynamicComp():void { for (....) { gCell = createDynamicPartInstance("gridCell") as SkinnableComponent; } } |
|
|||||
|
Если вам надо на старте создать динамические компоненты, то вызываете createDynamicPartInstance в createChildren, если после изменения некоего параметра, то в сеттере параметра выставляете флаг и в commitProperties вызываете createDynamicPartInstance. Если нужна дополнительная обработка, ловите создание вашего компонента в partAdded по имени (partName).
|
|
|||||
|
Регистрация: Apr 2011
Сообщений: 61
|
Спасибо.)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|