2014-07-01 82 views
0

在线教程的帮助下,我创建了一个简单的60秒倒数计时器。一旦定时器击中10秒,我真的很喜欢文本颜色变成红色。任何线索我可以添加到这个AS来实现这一点?AS3 - 倒数计时器颜色变化

奖励问题:当计时器达到零时,我希望整个文本字段淡出,以便零不再可见。对此有何想法?

这是我的代码,谢谢!

var nCount:Number = 60; 
var myTimer:Timer = new Timer(1000, nCount); 

timer_txt.text = nCount.toString(); 
myTimer.start(); 

myTimer.addEventListener(TimerEvent.TIMER, countdown); 

function countdown(e:TimerEvent):void 
{ 
    nCount--; 
    timer_txt.text = nCount.toString(); 
} 

回答

0

要更改颜色,请将if语句添加到您的TimerEvent.TIMER处理程序中。

要在最后淡出,请为TimerEvent.COMPLETE添加侦听器。

import flash.events.TimerEvent; 
import fl.transitions.Tween; 
import fl.transitions.easing.None; 

var nCount:Number = 60; 
var myTimer:Timer = new Timer(1000, nCount); 

timer_txt.text = nCount.toString(); 
myTimer.start(); 

myTimer.addEventListener(TimerEvent.TIMER, countdown); 
// add a complete listener to fade out the TextField 
myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, fadeOut); 

function countdown(e:TimerEvent):void 
{ 
    nCount--; 
    if(nCount == 10) 
    { 
     // if the count is at 10, switch the text color to red 
     timer_txt.textColor = 0xFF0000; 
    } 
    timer_txt.text = nCount.toString(); 
} 

function fadeOut(e:TimerEvent):void 
{ 
    // I prefer GreenSock for tweening, but this is how you'd do it with the buil-in Flash Tween 
    var t:Tween = new Tween(timer_txt, "alpha", None.easeNone, 1, 0, .5, true); 
} 
+0

这绝对是完美的。我不能够感谢你!我有一个类似的问题,我正在为同一个项目工作,如果你愿意帮助:http://stackoverflow.com/questions/24518165/as3-countdown-timer-bar-howto-tutorial –