У меня есть еще один вопрос "Как мне?" :)
Предположим, у меня есть компонент, и я хочу изменить его цвет фокуса во время выполнения. Вот пример для вас (я исключил все кнопки и тому подобное, чтобы компонент не терял фокус, потому что в этом случае он отлично меняет свой цвет):
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
creationComplete="init()">
<mx:Script><![CDATA[
private function init():void {
//putting focus inside needed component
focusTest.setFocus();
focusTest.setSelection(0, 0);
// creates a new Timer
var minuteTimer:Timer = new Timer(1000, 30);
// designates listeners for the interval and completion events
minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
minuteTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
// starts the timer ticking
minuteTimer.start();
}
public function onTick(event:TimerEvent):void {
// displays the tick count so far
trace("tick " + event.target.currentCount);
if (focusTest.getStyle('focusColor') != 0x008CEA) {
focusTest.setStyle('focusColor', 0x008CEA);
} else {
focusTest.setStyle('focusColor', 0xFF0000);
}
//Update everything somehow :)
}
public function onTimerComplete(event:TimerEvent):void {
trace("Time's Up!");
}
]]></mx:Script>
<mx:TextInput id="focusTest"/>
</mx:Application>
Что у меня есть: Таймер работает. Свойство меняется (вы можете видеть это, например, при переключении вкладок в вашем браузере ... просто ловите правильное состояние, когда цвет меняется).
Что я хочу: Как сделать так, чтобы этот фокус перерисовывался без магии (я перепробовал все методы, начиная с "validate
", я пытался вызвать updateDisplayList()
на все приложение, я пытался позвонить styleChanged
... aggrrh .. У меня нет идей :)).
Есть мысли?
Любая помощь, как обычно, очень ценится:)