Чем полезен UAFPUG чат, или как легко сделать стилируемый компонент во флеше
March 27, 2008 – 9:12 amЧат UAFPUG очень полезен в своей сути, там кроме множества интересного флейма проскакивает множество интересного НЕ флейма.
Сегодня была дана краткая инструкция как написать свой компонент, который использует стандартный механизм стилирования от Адоба, лог чата:
[13:36:48] Ilja Panin говорит: ну просто реализация харнителя стилев + базовые методы не сильно сложно, но их нужно делать а перед этим подумать хоршо
или хорошо почитать про флеш калссы )
[13:38:37] Rostislav Siryk говорит: Да, Илюха, ты прав. Но учти, что во флэше скинование уже поодерживается, так что я тебе настоятельно рекомендую fl.managers.StyleManager
Он за стили отвечает.
[13:39:31] denis sheremetov говорит: Всем привет, со старта давайте разберемся со скинированием
// … тут долгий спор о том что всетаки есть флешовый UIComponent[13:41:02] denis sheremetov говорит: c:\Program Files (x86)\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface\fl\core\UIComponent.as
типа такой кординаты
итого, наследуешься от него
описываешь стили в статической проперти типа:
private static var defaultStyles:Object = {
backgroundSkin:"Volume_background",
foregroundSkin:"Volume_foreground"
};
декларируешь тамже
public static function getStyleDefinition():Object {
return defaultStyles;
}
дальше по ситуации:
override protected function configUI():void {}
для конфигурирования изначально
protected override function draw(): void {} - для отрисовки
тока!
в конце draw() обязательно super.draw()
а в самом draw() пользовать продвинутые методики типа[code lang=”ActionScript”]
if(isInvalid(InvalidationType.STYLES)) {
var old : DisplayObject = _background;
_background = getDisplayObjectInstance(getStyleValue(“backgroundSkin”));
addChild(_background);
if(old != null && old != _background) {
removeChild(old);
}
[/code]фсё, теперь конфигуришь внешние мувики, которые составляют суть скина
ну и как всегда не все оказывается так просто как хочется
[13:55:46] denis sheremetov говорит: кстати, походу вопрос, может кто сталкивался: вот этот самый isInvalid(InvalidationType.STYLES), сцуко непонятным и непрогнозируемым образом возникает
т.е. невсегда когда реально меняются стили
потому потери в производительности на перерисовках, там где они не нужны
Вы прослушали краткую историю как создать компонент во флеше с собственными стилями, спасибо еще раз Денису за такой краткий и полезный план действий!