a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 辦公 > Flash > 正文

Flash AS 實例進階 制作時鐘實現代碼

2020-07-17 13:14:03
字體:
來源:轉載
供稿:網友

  源文件下載

  >點擊查看動畫效果<實例2-6時鐘

  基本思路

  ① 作 3 個指針 MC ,分別按不同的速度旋轉,實現時鐘效果。

  ②若 要拖拽效果,則要把 12 個數字分別作成 MC 。然后作鼠標跟隨。

新知識點

  ① Date 類的方法的應用:


復制代碼
代碼如下:

MY Date= new Date()// 構造一個新的 Date 對象
Date.getHours()// 按照本地時間返回小時值。
Date.getMinutes()// 按照本地時間返回分鐘值。
Date.getSeconds()// 按照本地時間返回秒數。
Date.getMilliseconds()// 按照本地時間返回毫秒值。


②一種緩沖公式應用

  實例說明

  ①此時鐘實例是由數字和指針共 15 個 MC 組成,并又是嵌套在 MC “ biao” 中,各 MC 的注冊點一定要確定準確,

  ② 分別將 MC “ biao” 放在主時間軸的 3 個幀上,為各幀上的 MC 編寫不同的腳本。

  ③ 設一按鈕用于各幀之間的跳轉

編寫動作腳本

  ① 在第 1 幀到第 2 幀的 MC 上輸入:

復制代碼
代碼如下:

onClipEvent (enterFrame) {// 以影片剪輯幀頻不斷觸發的動作
   s = new Date();// 創健日期對象
   Hours = s.getHours();// 讀取系統時間 - 時
   if (12<Hours) {
     Hours = Hours-12;
   }// 把 24 小時制轉換為 12 小時制
   this.b13._rotation = ((Hours*30)+(s.getMinutes()/2)); // 把時和分轉換為旋轉角度
    this.b14._rotation = (6*s.getMinutes()); // 把獲取的系統時間分轉換為旋轉角度
    this.b15._rotation = (6*s.getSeconds()); // 把獲取的系統時間秒轉換為旋轉角度
   }

  ② 在第 3 幀的 MC 上輸入:

復制代碼
代碼如下:

onClipEvent (load) {變量初始化
for (i=1; i<16; i++) {
this["b"+i].xl = 0;
this["b"+i].yl = 0;
}
}
onClipEvent (enterFrame) {
   s = new Date();
   Hours = s.getHours();
   if (12<Hours) {
     Hours = Hours-12;
   }
   this.b13._rotation = ((Hours*30)+(s.getMinutes()/2));
   this.b14._rotation = (6*s.getMinutes());
   this.b15._rotation = (6*s.getSeconds());
   this.b1._x = _xmouse;
   this.b1._y = _ymouse+120; // 讓第一個 MC 跟隨鼠標移動 ,并要MC低于鼠標120個像素。
   for (i=2; i<=15; i++) {
      this["b"+i].xl = (this["b"+(i-1)]._x-this["b"+i]._x)/2+this["b"+i].xl*0.3;// 變量 bi.xl 在趨于 0 的過程中不斷被賦新值
      this["b"+i].yl = (this["b"+(i-1)]._y-this["b"+i]._y)/2+this["b"+i].yl*0.3;// 變量 bi.yl 在趨于 0 的過程中不斷被賦新值
     this["b"+i]._x += this["b"+i].xl;//MC “ bi ”的坐標 x 值
     this["b"+i]._y += this["b"+i].yl;//MC “ bi ”的坐標 y 值
    }
   }

        ③ 在第 1 幀上輸入:

stop();

   ④ 在第 2 幀上輸入:
biao.startDrag(true);

   ⑤在第 1 幀到第 2 幀的按鈕上輸入:
on (release) {   nextFrame();}

  ⑤在第 3 幀的按鈕上輸入:

on (release) {   gotoAndStop(1);}
要點分析

  ① 時針: this.b13._rotation = ((Hours*30)+(s.getMinutes()/2))

  首先看 ((Hours*30) ,因為走一周 12 小時是 360 度,那每小時就是走 30 度,用本地時間的小時數乘于 30 就是指針指向的度數。,如 3 點就是 3*30 ,指針在 90 度位置,但這樣只能是按小時發生動作,要顯示中間的指針變化還需加上 (s.getMinutes()/2) ,這個表達式是計算的當前分鐘乘于每分鐘在一個小時刻度內走的度數( 0.5 度),這兩個表達式相加就是以小時和分鐘計算出的時針旋轉度數。

  ② 緩沖公式: this["b"+i].xl = (this["b"+(i-1)]._x-this["b"+i]._x)/2+this["b"+i].xl*0.3;

  為便于觀看首先把數值具體化: b2.xl=( b1._x-b2._x)/2+b2.xl*0.3; 其中的 ( b1._x-b2._x)/2 ,我們在導航條那課已經用過類似的方法,這里是取兩個 MC 坐標值的差的二分之一,這個表達式的結果在不斷的由大到小直至為 0 ,其中的 b2.xl*0.3 , 是有意增加的偏差值, 有叫抖動率的,也是由大到小變化最后到 0 ,這兩個表達式計算的結果賦給變量 b2.xl ,有了這樣的公式,鼠標跟隨就會有延時和抖動效果。

小結

  本講學習的目的是掌握時鐘的運動原理,此外還學習 一種緩沖公式的運用,也是很有實用價值的內容,希望課下能用數字代入加深理解。

課后練習

  不要秒針跳躍式旋轉,而要平緩連貫地旋轉,范例效果:

  >點擊查看動畫效果<練習2-6   

  >點擊查看動畫效果<練習2-6-2

  查看全套"Flash AS 實例進階教程"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级黄色裸体片 | 久久亚洲一区二区三区四区五区高 | 九九99九九精彩46 | 欧美手机在线 | www.99精品 | 欧美一性一乱一交 | 免费成人在线网站 | 日日av拍夜夜添久久免费 | 亚洲蜜桃精久久久久久久 | 国产亚洲综合视频 | 日韩免费在线 | 国产wwwcom| 国产亚洲一区二区三区在线 | 欧美日韩电影一区二区三区 | 亚洲综合在线一区 | 国产精选一区二区三区 | 精品一区二区电影 | 国产亚洲精品久久久久动 | 国产精品乱码久久久久久 | 亚洲+变态+欧美+另类+精品 | 国产精品一区久久久久 | 成人一区二区三区 | 超碰在线网址 | 亚洲国产精品一区二区第一页 | 99re6在线 | 中文字幕亚洲精品 | 黄色毛片av| 亚洲精品成人 | 免费搞黄视频 | 日韩在线影院 | 99久久视频 | 精品久久久久久久 | 国产网站在线 | 91精品国产欧美一区二区成人 | 伊人夜夜躁av伊人久久 | 成人精品一区二区三区中文字幕 | 久久久久国产精品视频 | 日韩一区在线播放 | 亚洲精品视频一区 | 蜜桃色网| 全免费一级毛片免费看 |