Предположим, у вас в вашем приложении большое количество (N) кнопок искры. Давайте также скажем, что ваши кнопки имеют очень похожие скины (размер, различные эффекты и т. Д.) - единственное отличие - это конкретный png, который они используют в качестве своего BitmapImage. Вы закончили с N скин-файлами, все отличаются на 1 строку? Или есть более умный способ сделать это, не добавляя много кода при создании кнопок в MXML (фактически, в идеале, ни один).скинирование нескольких компонентов пользовательского интерфейса
0
A
ответ
1
Создание пользовательской кнопки со значком скина типизированных как BitmapImage позволит вам использовать один и тот же кожи для всех кнопок:
<YourCustomButton icon="@Embed('yourIconFile.png') />
CustomButton.as
public class CustomButton extends Button
{
[SkinPart(required="false")]
public var iconContainer:BitmapImage;
private var _icon:Object;
public function CustomButton()
{
super();
}
override protected function partAdded(partName:String, instance:Object):void
{
super.partAdded(partName, instance);
if (instance == iconContainer && _icon)
iconContainer.source = _icon;
}
public function get icon():Object
{
return _icon;
}
public function set icon(value:Object):void
{
if (iconContainer)
iconContainer.source = value;
_icon = value;
}
}
Флориан, спасибо для вашего совета. Я думаю, вы на что-то, но я не совсем понимаю, как вы все это установили - я пытался, но у меня очень мало опыта с SkinPart. Есть ли вероятность, что вы можете отправить какой-то код? –
уверен! см. мой отредактированный ответ –
Флориан, спасибо вам большое - это прекрасно! –