Показать сообщение отдельно
Старый 13.10.2008, 11:52
romantique вне форума Посмотреть профиль Отправить личное сообщение для romantique Найти все сообщения от romantique
  № 1  
Ответить с цитированием
romantique

Регистрация: Jul 2007
Сообщений: 44
По умолчанию Кастомные стили Flex компоненты

Я пытаюсь добавить кастомных стилей к компоненте расширяющей mx:Panel. Вот что я делаю:

Файлик skin.css
Код:
.videoPanel
{
	borderSkin : @Embed[( ...
	someStyle : "Hello flasher.ru";
}
Внутри mxml'ки:

Код:
<mx:Style source="skin.css"/>
<video:VideoPanel styleName="videoPanel"/>
И в файлике VideoPanel.as у меня:
Код:
[Style(name="someStyle",type="String",inherit="no")]
public class VideoPanel extends Panel
{
	private static var classConstructed:Boolean = classConstract();

	private static var classConstruct():Boolean
	{
		if( StyleManager.getStyleDeclaration("VideoPanel") == null )
		{
			var newStyle:CSSStyleDeclaration = new CSSStyleDeclaration();
			newStyle.setStyle("someStyle","HelloWorld")
			StyleManager.setStyleDeclaration("VideoPanel",newStyle,true);
		}
		return true;
	}

	override public function styleChanged(styleProp:String)
	{
		super.styleChanged(styleProp);
		if( styleProp=="someStyle" )
		{
			// тут стоит breakpoint
		}
	}

	...
}

Проблема в отм, что брейкпоин не достигается.

В любом случае даже если я ставлю брейкпоинт на строчку super.styleChanged(styleProp); и смотрю значение styleProp, - оно null оба раза, когда там останавливается дебаггер.

Но стиль borderSkin (который родной для mx:Panel) к моей компоненте применяется, даже при том условии, что самое значение "borderSkin" никогда не проходит через методstyleChanged().

Я понимаю работу со стилями неправильно? Как стиль borderSkin может примениться к компоненте, если он никогда не проходил через методstyleChanged()? И как мне заставить мой "someStyle" примениться к моей компоненте ?

Any help is appreciated.

PS: I've read the entire part of Adobe Create And Extend Flex 3 Components book about styling... But it didn't help me.
__________________
hell no !


Последний раз редактировалось romantique; 13.10.2008 в 11:54.