2001.8.8 花蓮縣立 花崗國中 校內同仁暑期 Flash 5 練功房  回首頁主選單

動態控制(動態控制指針速度)
  1. 下載母檔:請按此處下載空白母檔,並存在「我的文件」夾中。然後打開它。
  2. 觀念構思
    ■按鈕只能「一個指令、一個動作」,不能產生連續的動作。
    ■希望利用「主場景」連續播放的影格,能替我作連續運作的「經紀人」。
    ■希望每個按鈕只要輸入「參數」,「經紀人」就會替我盤算。
  3. 預置元件:空白母檔中「元件」的分佈如下:
    ■此時你如打開右下角的「 圖庫」也可以看到以下說明。
    按鈕元件:母檔下方的「播放、快放、停止、順時針加速、逆時針加速」均為按鈕元件。
    影片元件:母檔中「指針、鐘面」均為影片元件。
    影片按鈕:母檔右上方「四個綠色球」均為影片元件內包按鈕元件
    ■因為 Flash 只會拖曳「影片元件」,為了要叫按鈕拖曳自已,所以只好將「按鈕元件」再轉按成「影片元件」。
  4. 影片命名
    ■請在左方「指針」圖按右鍵選「面板 → 實體」。在面板中「名稱」欄位填入「pointer」。(這是我們給指針取的名字,以便程式呼叫它)
    ■選「↖ 箭頭工具」,輕觸針後「鐘面」。再在實體面板「名稱」欄位填入「panel」。
    ■再輕觸右上方第一個「綠球」。再在實體面板「名稱」欄位填入「a」。
    ■再輕觸右上方第二個「綠球」。再在實體面板「名稱」欄位填入「b」。
    ■再輕觸右上方第三個「綠球」。再在實體面板「名稱」欄位填入「c」。
    ■再輕觸右上方第四個「綠球」。再在實體面板「名稱」欄位填入「d」。
  5. 指針速度
    ■在主場影「指令」圖層的第一影格(左鍵)雙擊,在跳出的指令面板上按「+ 」然後選「動作 → evaluate」, 此時面板右方會出現一「;」空行,你可在下方「表示式」欄位填入下列指令
     pointer._rotation = pointer._rotation + speed
     其中 pointer 是指針,_rotation 是角度,speed 是自設變數、由按鈕供應數字。
     這句指令是叫「指針由現在的角度再加上按鈕供應的角度」。
    ■(左鍵)輕觸右下方「播放」按鈕,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
     speed = 1
     這句是告訴「經紀人」以每次前進1° 運轉。
    ■(左鍵)輕觸右下方「快放」按鈕,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
     speed = 20
     這句是告訴「經紀人」以每次前進 20° 運轉。
    ■(左鍵)輕觸右下方「停止」按鈕,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
     speed = 0
     這句是告訴「經紀人」以每次前進角度為0°。
    ■(左鍵)輕觸左下方「逆時針」按鈕,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
     speed = speed - 1
     這句是告訴「經紀人」減慢1° 運轉。
    ■(左鍵)輕觸左下方「順時針」按鈕,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
     speed = speed + 1
     這句是告訴「經紀人」加快1° 運轉。
  6. 觀察成果:按 F12 看看指令是否生效。

動態控制(鐘面旋轉、透明度、橫向縮放、縱向縮放)

  1. 拖曳綠球
    ■選「↖ 箭頭工具」,(左鍵)雙擊右上綠球,左上方出現「 才對」,此時再對綠球按右鍵選「面板 → 動作」,叫出動作面板。在跳出的指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    startDrag ("", false, _root.a0, _y, _root.a0+100, _y);
    // 意即按下此鈕時,強制綠球只能在一有限的直線上運動
    // 上:_y → 綠球座標
    // 下:_y → 綠球座標
    // 左:_root.a0 → 全程左端(其中 a0 是自設變數,代表左端座標)
    // 右:_root.a0 + 100 → 全程右端(代表右端座標,全長 100)
    ■將滑鼠移至此句最下方「}」上,(左鍵)輕觸一下,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    stopDrag ()
    意即當滑鼠放開時,不要拖曳此綠球。
  2. 預設變數
    ■(左鍵)輕觸「指令」圖層的第一影格,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位依次填入下列指令
    a0 = a._x;
    // 預先畫好之母圖舞台中 a 球是在紅桿的「左端」
    // 記下 a 球的「橫座標」並存於變數 a0 中,以此位置作「原點」
    b0 = b._x;
    // 預先畫好之母圖舞台中 b 球是在紅桿的「左端」
    // 記下 b 球的「橫座標」並存於變數 b0 中,以此位置作「原點」
    c0 = c._x;
    // 預先畫好之母圖舞台中 c 球是在紅桿的「正中間」
    // 記下 c 球的「橫座標」並存於變數 c0 中,以此位置作「原點」
    d0 = d._x;
    // 預先畫好之母圖舞台中 d 球是在紅桿的「正中間」
    // 記下 d 球的「橫座標」並存於變數 d0 中,以此位置作「原點」
    b._x = b0 + 100;
    // 預設綠球只能在 0∼100 的範圍中移動
    // 先將 b 球送至最右端,讓鐘面 alpha = 100
    c._x = c0 + 50;
    // 先將 c 球送至最右端,讓鐘面 xscale = 100
    d._x = d0 + 50;
    // 先將 d 球送至最右端,讓鐘面 yscale = 100
  3. 縱向縮放
    ■(左鍵)輕觸「指令」圖層的第二影格,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    panel._yscale = (d._x - d0)*2
    // panel 是鐘面,_yscale 是縱向尺寸,d 是右方第四個綠球,
    // _x 是綠球的座標,d0 是全長的「中心」原點,
    // 因為全長 100 所以 (d._x - d0) 是在 -50∼50 之間
    // 所以乘 2 之後恰介於 -100∼100 之間
    //這句指令是「將綠球 d 的橫座標,轉換成鐘面的縱向縮放尺寸」。
  4. 橫向縮放
    ■在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    panel._xscale = (c._x - c0)*2
    // panel 是鐘面,_xscale 是縱向尺寸,c 是右方第三個綠球,
    // _x 是綠球的座標,c0 是全長的「中心」原點,
    // 因為全長 100 所以 (c._x - c0) 是在 -50∼50 之間
    // 所以乘 2 之後恰介於 -100∼100 之間
    //這句指令是「將綠球 c 的橫座標,轉換成鐘面的橫向縮放尺寸」 。
  5. 鐘面透明
    ■在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    panel._alpha = b._x - b0
    // panel 是鐘面,_alpha 是透明度,b 是右上第二個綠球,
    // _x 是綠球的座標,b0 是全長的「左端」原點,
    // 因為全長 100 所以 (b._x - b0) 是在 0∼100 之間
    //這句指令是「將綠球 b 的橫座標,轉換成鐘面的透明值」。
  6. 鐘面旋轉
    ■在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    panel._rotation = (a._x - a0)*360/100
    // panel 是鐘面,_rotation 是角度,a 是右上第一個綠球,
    // _x 是綠球的座標,a0 是全長的「左端」原點,
    // 因為全長 100 所以 (a._x - a0) 是在 0∼100 之間
    // 當 (a._x - a0) = 100 時,將之除以 100,再乘 360 恰對應圓周的 360°
    //這句指令是「將綠球 a 的橫座標,轉換成鐘面的旋轉角」。
  7. 重覆播放
    ■(左鍵)輕觸「指令」圖層的第三影格,在指令面板上按「+ 」然後選「動作 → evaluate」,在下方「表示式」欄位填入下列指令
    gotoAndPlay (2);
  8. 觀察成果:按 F12 看看指令是否生效。

(完成指令的) 原始檔 (內附說明)


道場
本校電腦教室 B
總教頭
王建忍老師 熱情義助
工程師
黃清順、陳俊甫老師 鼎力襄贊
助教
謝盛智、江梅英老師 熱情指導
主辦單位
花崗國中教師會
彙辦
教師會理事 教務處 劉樞遠 主任
版權所有
王建忍 Copyright (c) 1999-2014 by Edson Wang. All rights reserved.