聊之中看了一个亚运倒计时的制作,于是跟着步骤学了一下制作方法。采取的计算当今的时间与实际目标的差距值,然后再来转换时间。 换算单位:
//显示时间,计算两个时间差
//1天=24小时
//1小时=60分
//1分=60秒
//1秒=1000毫秒
通过这个换算就能实现到倒计时间了。方法很简单。通过Timer 的时间来调用和显示时间,同样也可以使用其他的方式来调用时间显示。
忽然在制作的时候,发现了一个问题,不知道字符串怎样对某一个字符串 修改他们的颜色呢?好像字体才行。有空再探讨一字符串的颜色设置的方法。
这个只是个小东西程序,当作是小练习了。最近发现人很浮躁没有静下心去写大一点的程序,丢了很多。于是还是想写一点野记录一下。大小也好,反正要保持一种状态。坚持一下,做一件傻事。
细心发现最近我也很喜欢结合到api和滤镜,在设计方面上可以产生一些很好的效果。单纯外观来看是漂亮,但是滤镜对程序消耗会有点儿,至于是如何?我没有去考究具体的性能差异,但是对于这样的小程序足以够应付了。
不足的地方,就是写死了这个程序,不方便修改。看了一下其他人写法,就是可以调用远程的结果,这样修改的时候不会那么被动。
package { import flash.display.Sprite; import flash.events.*; import flash.utils.Timer; import flash.utils.getTimer; import flash.text.*; import flash.filters.*; public class Main extends Sprite { private var timer:Timer; private var targetDate:Date=new Date(2010,10,12,20); private var runningData:Date=new Date(); private var timerTxt:TextField=new TextField(); public function Main() { draw();//描底 timerTxt.defaultTextFormat=new TextFormat("Arail",16,null,true); timerTxt.autoSize=TextFieldAutoSize.LEFT; timerTxt.x=150; timerTxt.y=120; addChild(timerTxt); timer=new Timer(1000); timer.addEventListener(TimerEvent.TIMER,onTimerHandler); timer.start(); } private function draw():void { this.graphics.beginFill(0xffffff); this.graphics.drawRoundRect(10,10,380,246,10,10); this.graphics.endFill(); this.filters=[new GlowFilter(0x666666)]; } private function onTimerHandler(event:TimerEvent):void { showTime(); } //显示时间,计算两个时间差 //1天=24小时 //1小时=60分 //1分=60秒 //1秒=1000毫秒 private function showTime():void { var time:Number=(targetDate.getTime()-(new Date()).getTime())/1000;//计算秒数 trace(new Date()); if (time>0) { var day:int=int(time/(60*60*24));//计算日 time=time-day*24*60*60; var hour:int=int(time/(60*60)); time=time-hour*60*60; var minute:int=int(time/60); time=time-minute*60; var second:int=time; timerTxt.text=String(day)+"天"+String(hour)+"小时"+String(minute)+"分"+String(second)+"秒"; } else { timerTxt.text="亚运开始"; timer.stop(); timer.removeEventListener(TimerEvent.TIMER,onTimerHandler); } } } }