Просто из любопытства я прилагаю усилия для оптимизации каждой части нашего гибкого приложения (которое является небольшой частью нашего приложения в целом). В настоящее время я работаю над оптимизацией всех кнопок / скинов. Я связал несколько кнопок, которые я использую, и пример кода, который я использую для их генерации.
Посоветуйте, пожалуйста, как сделать это более эффективным, удобным и просто лучше в целом. Спасибо!
Как видите, наши кнопки могут сильно отличаться, но выглядят и выглядят одинаково. В настоящее время я создаю «скины с состоянием», настраивая что-то вроде этого:
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
}
}
Я прокомментировал некоторые прямые части, но сообщите мне, если это плохой / неэффективный способ сделать это - и как улучшить.
Спасибо!