Apache flex 蒙皮多个UI组件
假设你的应用程序中有大量的火花按钮。我们还可以说,您的按钮都具有非常相似的外观(大小、各种效果等)——唯一的区别是它们用作位图图像的特定png。Apache flex 蒙皮多个UI组件,apache-flex,flex4,mxml,skinning,Apache Flex,Flex4,Mxml,Skinning,假设你的应用程序中有大量的火花按钮。我们还可以说,您的按钮都具有非常相似的外观(大小、各种效果等)——唯一的区别是它们用作位图图像的特定png。 您是否最终得到N个皮肤文件,所有文件都相差1行?或者,当您在MXML中创建按钮时,是否有一种更智能的方法可以做到这一点,同时不添加大量代码(事实上,理想情况下,没有)。创建带有图标SkinPart(键入为位图图像)的自定义按钮将允许您对所有按钮使用相同的外观: <YourCustomButton icon="@Embed('yourIconFil
您是否最终得到N个皮肤文件,所有文件都相差1行?或者,当您在MXML中创建按钮时,是否有一种更智能的方法可以做到这一点,同时不添加大量代码(事实上,理想情况下,没有)。创建带有图标SkinPart(键入为位图图像)的自定义按钮将允许您对所有按钮使用相同的外观:
<YourCustomButton icon="@Embed('yourIconFile.png') />
弗洛里安,谢谢你的建议。我想你已经了解了一些东西,但我不太清楚你是如何设置的——我一直在尝试,但对SkinPart的使用经验很少。你能发一些代码吗?
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;
}
}