1) Почему у вас someColor
как String
?Таким образом, у вас есть два преобразования без необходимости: от Number
до String
(myColor.toString(16)
) и от String
до uint
(selectedColor="{someColor}"
).Почему бы просто не написать это:
[Bindable] public var someColor:uint = 0;
private function init():void{
someColor = Math.random()*0xFFFFFF;
}
2) И еще одна вещь, которая мне тоже не нравится - в текущем ответе у вас есть фактически бесполезная привязка, та, которая будет стрелять только один раз, и вы должныНе забудьте позвонить init()
где-нибудь в вашем коде.Я бы лучше изменил это при вызове функции:
private function getRandomColor():uint{
return Math.random()*0xFFFFFF;
}
<mx:ColorPicker id="calendar_color" width="20" height="20"
selectedColor="{getRandomColor()}"/>
Здесь getRandomColor()
будет автоматически вызываться при ColorPicker
инициализации.Одно неизбежное преобразование типов (от Number
до uint
), без привязок, без бесполезных свойств, более короткий код.
Это не преждевременная оптимизация, это устраняет преждевременную пессимизацию.