Вход

Просмотр полной версии : Скинование во Flex 2. Mac OS скин во Flex 2


Antares
11.05.2006, 23:01
Ребята из Adobe Consulting подумали-подумали, и сделали Flex Styles Explorer (http://weblogs.macromedia.com/mc/archives/2006/05/flex_2_style_ex_2.cfm). Среди примеров работы с ним мы видим Mac OS скин (http://weblogs.macromedia.com/mc/archives/2006/05/mac_os_x-lookin.cfm). А теперь вспомните, сколько вы возились со скинованием во Flash?

http://weblogs.macromedia.com/mc/archives/OSSXcss.jpeg

FSBmipt
07.06.2006, 21:50
Выглядит симпотично, но есть одно но! Это не скинирование, это изменение стиля, кроме css в примере ничего нет. Захотим сделать что-то большее, чем изменение заливки и корнеррадиуса и приехали. Однако есть возможность скинировать компоненты картинками, пример из хелпа:
<mx:Style>
Button {
overSkin: Embed("../assets/images/orb_over_skin.gif");
upSkin: Embed("../assets/images/orb_up_skin.gif");
downSkin: Embed("../assets/images/orb_down_skin.gif");
}
</mx:Style>

Тут то и натыкаемся на знакомые грабли - не работает. Попробуйте наложить такой скин на ComboBox - накладывается, но как-то неестесвенно растягивается, устанавливаем размеры по размеру скина и опа, пропадает выбранный лэйбл...Возможно у меня кривые руки, возможно компоненты еще сырые, вот собсвенно код компонента:

package classes.ui
{
import mx.controls.ComboBox;
import flash.events.Event;
import mx.states.SetStyle;
import mx.events.FlexEvent;

public class SkinnedComboBox extends ComboBox
{
[Embed(source="../../CBSkins/up.png")]
private var upSkin:Class;

[Embed(source="../../CBSkins/over.png")]
private var overSkin:Class;

[Embed(source="../../CBSkins/down.png")]
private var downSkin:Class;

[Embed(source="../../CBSkins/disabled.png")]
private var disabledSkin:Class;

public function SkinnedComboBox(){
super();

addEventListener(FlexEvent.INITIALIZE, initSkin);
}

private function initSkin(evt : FlexEvent):void{
setStyle('upSkin', upSkin);
setStyle('overSkin', overSkin);
setStyle('downSkin', downSkin);
setStyle('disabledSkin', disabledSkin);

width = 112;
height = 22;
}
}
}

etc
07.06.2006, 22:36
Жуткий скин. И на OS X вовсе не похож.

FSBmipt
08.06.2006, 21:32
В общем так и не удалось реализовать Graphical skin механизм, пришлось делать по Programmatic skins.. Кому интересно толковое объяснение здесь:

http://weblogs.macromedia.com/pent/archives/2006/04/programmatic_sk.cfm#more