Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.04.2011, 23:28
F10 вне форума Посмотреть профиль Отправить личное сообщение для F10 Найти все сообщения от F10
  № 1  
Ответить с цитированием
F10

Регистрация: Apr 2011
Сообщений: 61
По умолчанию Measure() в Spark.

Для SkinableComponent.

Создал свой компонент, заполняемый динамическими компонентами. Но соседние элементы не видят его фактических размеров.

Не могу понять, где рассчитываются размеры компонента после прорисовки или изменения свойств.
Раньше при изменении параметров(влияющих на размеры) вызывал invalidateSize(), и соответственно расчитывал размеры в measure().

Сейчас после invalidateSize(), но measure() не вызывается..

p.s. И еще, методы создающие динамические компоненты вроде как должны вызываться в partAdded(). Но там через раз вызывается ошибка, что:
Цитата:
Не удается вызвать свойство или метод со ссылкой на объект "null".
приходится запускать создание в createChildren(). это нормально?

Старый 19.04.2011, 02:29
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Размеры SkinnableComponent определяются размерами его скина.
Цитата:
И еще, методы создающие динамические компоненты вроде как должны вызываться в partAdded().
Что вы подразумеваете под "динамическими компонентами"?

P.S. Для начала изучите это http://www.adobe.com/ru/devnet/flex/...kintro_03.html

Старый 19.04.2011, 10:15
F10 вне форума Посмотреть профиль Отправить личное сообщение для F10 Найти все сообщения от F10
  № 3  
Ответить с цитированием
F10

Регистрация: Apr 2011
Сообщений: 61
Цитата:
Сообщение от alatar Посмотреть сообщение
Что вы подразумеваете под "динамическими компонентами"?
Вот это:
Код AS3:
[SkinPart(required = "true", type = "spark.components.supportClasses.SkinnableComponent")]
public var myDynamicCreatComponent:IFactory;
А в самом скине это:
Код AS3:
	<fx:Declarations>
		<fx:Component id="myDynamicCreatComponent">
			<s:Label />
		</fx:Component>
	</fx:Declarations>
Думал что их метод создания:
Код AS3:
private function createDynamicComp():void
{
      for (....) {
            gCell = createDynamicPartInstance("gridCell") as SkinnableComponent;
      }
}
должен находится в
Код AS3:
override protected function partAdded(partName:String, instance:Object):void
но там вызывается ошибка (причем вызывается через раз...т.е. иногда нормально и на этом этапе создает).

Старый 19.04.2011, 15:04
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Если вам надо на старте создать динамические компоненты, то вызываете createDynamicPartInstance в createChildren, если после изменения некоего параметра, то в сеттере параметра выставляете флаг и в commitProperties вызываете createDynamicPartInstance. Если нужна дополнительная обработка, ловите создание вашего компонента в partAdded по имени (partName).

Старый 19.04.2011, 17:24
F10 вне форума Посмотреть профиль Отправить личное сообщение для F10 Найти все сообщения от F10
  № 5  
Ответить с цитированием
F10

Регистрация: Apr 2011
Сообщений: 61
Спасибо.)

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.