现在的位置: 首页 > 综合 > 正文

AS3程序:Kclock(Flash 时钟)

2013年03月19日 ⁄ 综合 ⁄ 共 2600字 ⁄ 字号 评论关闭
个人总结:
1、AS3代码规范和习惯和之前的AS1,AS2是完全不同的,变得太多了!
2、比较欣赏AS3中的document class引用,能够完全做到界面和代码完全分离!界面在Kclock.fla文件里,所有的代码都在Kclock.as代码文件里!爽吧!
3、AS1,AS2是通过attachMovie方法把库里(通过Linkage中的关键字)的MC加载到场景中的,AS3则是将把库里(通过Linkage中的类)的MC,将其看作一个类,通用new 类名的方式,再通过addChild方法把它加载到场景中。这个是完全和原来不一样了!
4、用Timer类来代替原来的setInterval方法,这个到我原来写过的Thread类很类似的(激动一下)!
5、这个程序我花了一个下午的时间写出来的,属于一个习作,为了感受一下AS3!对于原来的flash开发者来说:就是把习惯进行根本 转变一下!

效果截图:

Kclock代码:

package {
      import flash.display.Sprite;
      import flash.events.TimerEvent;
      import flash.utils.Timer;

      public class Kclock extends Sprite {
            public var ticker:Timer;

      public function Kclock() {
            this.drawFace();
            this.drawHand();
            this.update();
            this.ticker = new Timer(1000);
            this.ticker.addEventListener(TimerEvent.TIMER, onTick);
            this.ticker.start();
      }

      private function drawFace():void{
            var face:Face = new Face();
            face.x = 150;
            face.y = 150;
            face.name = "face";
            this.addChild(face);
      }

      private function drawHand():void{
            var sec:SecondHand = new SecondHand();
            sec.x = 150;
            sec.y = 150;
            sec.name = "sec";
            this.addChild(sec);
            var min:MinuteHand = new MinuteHand();
            min.x = 150;
            min.y = 150;
            min.name = "min";
            this.addChild(min);
            var hou:HourHand = new HourHand();
            hou.x = 150;
            hou.y = 150;
            hou.name = "hou";
            this.addChild(hou);
            var cen:Center = new Center();
            cen.x = 150;
            cen.y = 150;
            cen.name = "cen";
            this.addChild(cen);
      }

      public function onTick(evt:TimerEvent):void{
            this.update();
      }

      private function update():void{
            var today:Date = new Date();
            var len:uint = this.numChildren;
            for(var i:uint = 0;i<len;i++){
                  var clild:Sprite = this.getChildAt(i) as Sprite;
                  switch(clild.name){
                        case "sec":
                                    clild.rotation = today.getSeconds()*6;
                                    break;
                        case "min":
                                    clild.rotation = today.getMinutes()*6;
                                    break;
                        case "hou":
                                    clild.rotation = (today.getHours() * 30) + (today.getMinutes() * 0.5);
                                    break;
                  }
            }
      }
}
}

下载文件:Kclock.rar
文件清单:
1、Kclock.fla flash源文件
2、Kclock.as 代码文件
3、Kclock.swf 生成的Swf文件需要flash player 9 才可以打开
4、Kclock.exe 生成的exe文件。
 

抱歉!评论已关闭.