只是出于好奇,我正在努力优化我们 flex 应用程序的每个部分(这通常是我们应用程序的一小部分)。目前,我正在优化所有按钮/皮肤。我已经链接了一些我使用的按钮,以及一些我用来生成它们的示例代码。
请就如何使其更有效、更实用、整体上更好的方法提出建议。谢谢!
如您所见,我们的按钮可能非常不同,但外观和感觉都相似。目前,我正在通过设置如下内容来创建“有状态皮肤”:
skin: ClassReference('com.mysite.assets.skins.NavigationButtonSkin');
然后,NavigationButtonSkin 看起来像这样:
public class NavigationButtonSkin extends UIComponent {
// imports, constructor, etc
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
// initialize fillColors, fillAlphas, roundedCorners, etc
switch( name ){
case 'upSkin':
fillColors = [getStyle('backgroundColor'),getStyle('backgroundColor2')];
break;
// do the same for overSkin, downSkin, disabledSkin, etc
}
// use this.graphics to draw background
// use this.graphics to draw border on top of background
}
}
我注释掉了一些直截了当的部分,但让我知道这是否是一种糟糕/低效的方法 - 以及如何改进。
谢谢!