PDA

Просмотр полной версии : styleName в динамически созданных элементах


lephik
10.06.2008, 11:31
Привет всем.
Проблема такая - в компоненте созданном через new и добавленом в контейнер через addChild при замене свойства styleName в одном из вложенных компонентов этого динамического компонента ничего не присходит... стиль не меняется. Подскажите как с этим бороться.

Спасибо. :bye:

romulko
10.06.2008, 23:22
А можно архивчик проекта? Так быстрее решим проблему ;)

moron
11.06.2008, 11:05
В коде компонента следует проверить:
1.) наличие перед определением класса тега [Style(name="style_name"[,property="value",...])] который определяет нужный вам стиль

2.) наличие внутри классаoverride public function styleChanged(styleProp:String):void {...} т.е. функции, которая фиксирует изменение вышеопределённого стиля

3.) внутри функции styleChanged() после того места, где фиксируется изменение стиля, должен присутствовать вызов invalidateDisplayList(); (который вызовет функцию updateDisplayList() при рендеринге следующего кадра)

4.) наличие внутри классаoverride protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void т.е. функции, в которой, например, по флагу изменения стиля соответсвующим образом меняется компонент

подробнее про стили здесь: http://livedocs.adobe.com/flex/3/html/help.html?content=skinstyle_1.html