所以我的动作脚本有一些noob错误,我需要一些帮助才能解决它。代码实现Timer更改将在给定的持续时间内更改文本。它收到了持续时间和需要突出显示/更改的RichText项目,并在给定时间内更改了它的颜色。这是它的基本结构。
package
{
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
import spark.components.RichText;
public class TextChanger
{
public function changeColorForDuration(Duration:int, Texter:RichText){
var highlightTextForDuration:Timer = new Timer(1000, Duration);
highlightTextForDuration.addEventListener(TimerEvent.TIMER_COMPLETE, textDehighlight(Texter));
textHighlight(Texter);
highlightTextForDuration.start();
}
private function textHighlight(specificText:RichText):void{
var textField:RichText = specificText;
textField.setStyle("color", "#ED1D24");
}
private function textDehighlight(textToChange:RichText):void{
var textField:RichText = textToChange;
textField.setStyle("color", "#00000");
}
}
}
非常感谢您提供的任何帮助。
感谢。
答案 0 :(得分:2)
当你致电addEventListener
时,你需要传入一个函数,而不是一个函数调用:
highlightTextForDuration.addEventListener(TimerEvent.TIMER_COMPLETE, textDehighlight);
你的听众功能需要看起来更像这样:
private function textDehighlight(e:TimerEvent):void{
var textField:RichText = textToChange;
textField.setStyle("color", "#00000");
}
当然,这需要您为textToChange
添加一个类变量。如果这不起作用,您可以使用匿名侦听器函数:
highlightTextForDuration.addEventListener(TimerEvent.TIMER_COMPLETE, function(e:TimerEvent):void {
var textField:RichText = Texter;
textField.setStyle("color", "#00000");
});