国产乱视频网站_久久亚洲一区二区三区四区_免费高清一级毛片_国产精品电影_国产精品乱码一区二区三区_美女天堂网

PS設計教程網歡迎你!

Flash CS4教程:制作時尚的時鐘效果(3)

文章來源于 動畫設計與制作208例,感謝作者 lby 給我們帶來經精彩的文章!
設計教程/設計教程/Flash教程2009-10-13
(3)新建一個ActionScript文件,并將其保存為Clock,下面編寫時鐘類的程序代碼。該類接收3個Sprite類型的對象參數,它們分別來自前面3個元件類所創建的實例(如第21~28行代碼),在創建實例時接收完這3個參數后,然后

(3)新建一個ActionScript文件,并將其保存為Clock,下面編寫時鐘類的程序代碼。該類接收3個Sprite類型的對象參數,它們分別來自前面3個元件類所創建的實例(如第21~28行代碼),在創建實例時接收完這3個參數后,然后調用init()方法來注冊ENTER_FRAME事件,并在偵聽器函數enterFrameHandler()中創建Date的實例,再取得一個特定時間點的時、分和秒值(如第35~38行代碼)。

AS3代碼

/**  
* 該類為時鐘原理類  
* @author lbynet  
* @version 0.1  
*/  
  
package {   
    import Date;   
    import flash.display.Sprite;   
    import flash.events.Event;   
       
    public class Clock extends Sprite {   
  
        private var hour:Number;   
        private var minute:Number;   
        private var second:Number;   
        private var _hours:Sprite;   
        private var _minutes:Sprite;   
        private var _seconds:Sprite;   
  
        public function Clock(h:Sprite,m:Sprite,s:Sprite) {   
            //將傳遞進來的三個對象參數,賦給該時鐘類的三個屬性   
            this._hours = h;   
            this._minutes = m;   
            this._seconds = s;   
               
            init();   
        }   
        private function init() {   
            this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);   
        }   
  
        private function enterFrameHandler(event:Event) {   
  
            var now:Date = new Date(); // 構造一個Date實例,Date 類的實例表示一個特定時間點   
            hour = now.getHours();   //獲取系統當前的時,分,秒    
            minute = now.getMinutes();   
            second = now.getSeconds();   
            //下面控制時針、分針、秒針的旋轉規律、旋轉角度 ,后面進行具體解釋   
            _hours.rotation = hour*30 + Math.floor(minute*6/12);   
            _minutes.rotation = minute*6 + Math.floor(second*6/60);   
            _seconds.rotation = second*6;   
  
        }   
    }   
}

技術看板:時、分、秒的算法

小時(hours):時鐘轉動一圈是360°,總共花12個小時,每一小時為30°,為了更加接近生活中時鐘的運動效果,因此再加上時針(hour)走完一小時的角度(30°)與分針(minute)走完一小時的角度(360°),那么它們的比例關系就是1/12。

分鐘(minutes):時鐘轉動一圈是360°,總共花60分鐘,每一分鐘是6°,再加上分針(minute)走完一分鐘的角度6°與秒針(second)走過一分鐘的角度360°,那么它們的比例關系就是1/60。

秒鐘(seconds):時鐘轉動一圈是360°,共60秒鐘,每一秒鐘是6°。

(4)返回到flash文檔中,然后新建一個AS圖層,并編寫出程序。通過SkinManager類來加載皮膚文件,并注冊偵聽器(如第1~3行代碼);第5~8行代碼是創建存儲時鐘組成元素的容器,并設置舞臺為居中對齊;接著創建sprite_name和class_name兩個數組,來分別存儲將要被加載swf文件中的元件類的實例名稱以及元件類名稱(如10和11行代碼);當加載完swf時鐘皮膚文件后,調用偵聽器函數completeHandler(),在偵聽器函數中執行一個for()循環語句,然后創建4個(_length值等于4)被加載swf文件中的元件類實例,并在添加實例名稱后統一添加到container_mc容器中(如第16~21行代碼)。

AS3代碼

var skin_mc:SkinManager = SkinManager.getInstance();   
skin_mc.loadSkin("skin/01.swf");   
skin_mc.addEventListener("skincomplete",completeHandler);   
  
var container_mc:Sprite = new Sprite();   
addChild(container_mc);   
container_mc.x = stage.stageWidth/2;   
container_mc.y = stage.stageHeight/2;   
  
var sprite_name:Array = ["bg_mc","hours_mc","minutes_mc","seconds_mc"];   
var class_name:Array = ["Bg","Hours","Minutes","Seconds"];   
var _length:uint = class_name.length;   
function completeHandler(e:Event) {   
    var _class:Class;   
    var new_sprite:Sprite;   
    for (var i=0; i<_length; i++) {   
        _class = skin_mc.getClass(class_name[i]);   
        new_sprite = new _class();   
        new_sprite.name = sprite_name[i];   
        container_mc.addChild(new_sprite);   
    }   
    create();   
}   
//創建一個時鐘(Clock)類,傳入三個參數,參數類型都是Sprite類型,   
//它們分別是舞臺上存在的三個影片剪輯元件,實例名分別為   
//時針(hours_mc) , 分針(minutes_mc) , 秒針(seconds_mc)   
function create() {   
    var a:Clock = new Clock(getItem("hours_mc"),getItem("minutes_mc"),getItem("seconds_mc"));   
    addChild(a);   
}   
function getItem(Name:String):* {   
    return container_mc.getChildByName(Name);   
}

創建完被加載swf文件中的元件類實例后,調用create()方法來創建Clock類實例(如第28行代碼);getItem()方法主要是通過container_mc.getChildByName()方法來取得container_mc容器中指定名稱的對象。

(5)除了前面的方法外,還可以通過隨機指定路徑來加載swf皮膚文件。

AS3代碼

var skin_mc:SkinManager = SkinManager.getInstance();   
skin_mc.loadSkin("skin/0"+Math.ceil(Math.random()*4)+".swf");   
skin_mc.addEventListener("skincomplete",completeHandler);

(6)按Ctrl+Enter組合鍵發布本例的所有程序。

進入論壇參與討論和交作業:http://www.missyuan.com/viewthread.php?tid=424472

版權所有PS設計教程網公安備案:蘇公網安備 32058302001023號工信部備案:滬ICP備09005587號
aaa
主站蜘蛛池模板: 久久精品国产一区二区三区不卡 | 国产成人福利在线观看 | 99国产精品久久久久久久 | 综合色综合 | 欧美日韩中字 | 成人免费精品 | 日韩福利在线观看 | 国产偷国产偷精品高清尤物 | 极品美女国产精品免费一区 | 欧美影院一区 | 一区二区在线电影 | 不卡视频一区二区三区 | 欧美中文在线观看 | 国产毛片一区二区 | 亚洲91精品 | 成人在线小视频 | 亚洲 成人 av | 天天操综合网 | 亚洲精品成人在线 | 五月激情六月综合 | 欧美视频三区 | 久久国产综合 | 精品视频 免费 | 在线观看一级片 | 日韩1| 九九九色 | 精品国产欧美一区二区 | 欧美白人做受xxxx视频 | 亚洲最大的网站 | 欧美性猛交一区二区三区精品 | 亚欧在线观看 | 久久久久久久av | 9999国产精品欧美久久久久久 | 亚洲二区在线观看 | 欧美一级免费看 | 中文字幕在线电影 | 美日韩久久| 欧美视频一区二区三区四区 | 国产日本欧美视频 | 国产精品一二 | 成人一级片在线观看 |