第四話 TQC認證 第四類 綜合應用I  檔案下載
EX1.猜拳遊戲

  • 於as圖層中第2各影格動作如下:

    stop();
    //決定電腦出拳的副程式
    function rand(){
    ran=random(3)
    if(ran==0){
    computer.gotoAndStop(2);
    }else if(ran==1){
    computer.gotoAndStop(3);
    }else{
    computer.gotoAndStop(4);
    }
    }

    //判斷輸贏的副程式
    function winorlose(){
    //贏
    if(my._currentframe==2 and computer._currentframe==4
    || my._currentframe==3 and computer._currentframe==2
    || my._currentframe==4 and computer._currentframe==3){
    _root.gotoAndStop(3);
    _root.my_score+=1;

    //輸
    }else if(computer._currentframe==2 and my._currentframe==4
    || computer._currentframe==3 and my._currentframe==2
    || computer._currentframe==4 and my._currentframe==3){
    _root.gotoAndStop(4);
    _root.computer_score+=1;

    //和局
    }else{
    _root.gotoAndStop(5);
    }
    }

  • 於結果圖層,第3各影格載入win.wav音效;第4各影格載入lose.wav音效;第5各影格載入draw.wav音效.
  • 於剪刀按鈕,加上按鈕動作如下:

    on(release){
    _root.my.gotoAndStop(2);
    rand();
    winorlose();
    }

  • 於石頭按鈕,加上按鈕動作如下:

    on(release){
    _root.my.gotoAndStop(3);
    rand();
    winorlose();
    }

  • 於布按鈕,加上按鈕動作如下:

    on(release){
    _root.my.gotoAndStop(4);
    rand();
    winorlose();
    }

  • 在我方分數的動態文字,屬性列變數:my_score,在電腦方分數的動態文字,屬性列變數:computer_score.
  • 於"在玩一次"圖層中第3各影格中,插入關鍵影格,從元件庫中拖曳出"再玩一次"按鈕至於適當位置,加上按鈕動作如下:

    on(release){
    gotoAndStop(2);
    my.gotoAndStop(1);
    computer.gotoAndStop(1);
    }

EX2.動畫下載進度
  • 開啟檔案FLD0402.FLA。
  • 選取場景中"load_mc"影片片段元件,增加影片片段動作如下。
    onClipEvent(enterFrame){
    with(_root){
    Mtotal=getBytesTotal()/1024;
    Mload=getBytesLoaded()/1024;
    pp=int(Mload/Mtotal*100);
    size_txt.text=int(Mtotal)+"KB";
    load_txt.text=int(Mload)+"KB";
    pt_txt.text=pp+"%";
    bar_mc._xscale=pp;
    }
    }
EX3.彩繪
  • 開啟檔案FLD0403.FLA。
  • 點選場景上方"筆刷"影片片段元件,加上動作。
    onClipEvent(load){
    Mouse.hide();
    startDrag("",true);
    }
  • 於場景中as圖層增加影格動作,如下。
    var Color_List=[0xffffff,0xff0000,0x00ccff,0x00ff00,0xcc99ff,0xffc0c0,0xffff00,0x990033,0xff33cc,0xff9900];
    //-----------------------------------------
    stop();
    //-----------------------------------------
    PenColor=new Color(_root.pen.pc);
    PenColor.setRGB(0xFFFFFF);

    mc_p=new Array()
    for(i=1;i<=20;i++){
    mc_p[i]=new Color("p"+i);
    }

  • 於場景中的顏色按鈕元件依序加上動作,如下。
    第一顆白色按鈕
    on(release){
    PenColor.setRGB(Color_List[0]);
    }

    ......
    第十顆橙色按鈕
    on(release){
    PenColor.setRGB(Color_List[9]);
    }

  • 再利用元件庫,找到"p1"影片片段元件,視其形狀,找到填色區相同位置之按鈕元件,加上按鈕元件動作如下。
    "p1"對應的形狀的按鈕元件動作
    on(release){
    mc_p[1].setRGB(_root.PenColor.getRGB());
    }

    ........
    "p20"對應的形狀的按鈕元件動作
    on(release){
    mc_p[20].setRGB(_root.PenColor.getRGB());
    }
  • 場景中"清除"按鈕元件動作如下。
    on(release){
    for(i=1;i<=20;i++){
    mc_p[i].setRGB(0xFFFFFF);
    }
    }
    on(rollOver){
    Mouse.show();
    _root.pen._visible=false;
    }
    on(rollOut){
    Mouse.hide();
    _root.pen._visible=true;
    }
  • 場景中"結束"按鈕元件動作如下。
    on(release){
    fscommand("quit");
    }
    on(rollOver){
    Mouse.show();
    _root.pen._visible=false;
    }
    on(rollOut){
    Mouse.hide();
    _root.pen._visible=true;
    }

EX4.翻牌遊戲
  • 開啟檔案FLD0404.FLA。
  • 將場景中12張牌皆設定實體名稱card1~card12。
  • 於"行為指令"圖層的第1各影格輸入影格動作,如下。
    // 以下請自行撰寫設定12張牌的初始值的相關程式碼
    CardNum="112233445566";

    // 以下請將號碼置入牌中,牌的實體名稱為card1~12
    // 利用迴圈隨機取出CardNum中的值,並指定給各張牌
    // 為避免重複,值取出後,再將CardNum的數列減去已取出的值
    for(i=1;i<=12;i++){
    getpos=random(cardNum.length)+1;
    set("card"+i,int(substring(cardNum,getpos,1)));
    cardNum=substring(cardNum,1,getpos-1)+substring(cardNum,getpos+1,cardNum.length-getpos);
    }

    // 設定記憶第一次及第二次點選的牌的變數
    c2 = 0;
    c3 = 0;

    // 設定已配對完成的牌組數目的變數起始值
    finish = 0;

  • 於"行為指令"圖層的第4各影格輸入影格動作,如下。
    if(eval(c2)==eval(C3)){
    finish ++;
    result.gotoAndStop(2);
    }else{
    result.gotoAndStop(1);
    }
  • 於元件庫中,雙擊"比對結果"影片片段元件,進入編輯環境,點選第一各影格中的"答錯了"按鈕元件,加上按鈕元件動作。
    on(release){
    eval("/"+eval("/:c2")).gotoAndStop(1);
    eval("/"+eval("/:c3")).gotoAndStop(1);
    _root.gotoAndStop(2);
    }

  • 點選第二各影格中的"猜對了"按鈕元件,加上按鈕元件動作。
    on(release){
    eval("/"+eval("/:c2"))._visible=false;
    eval("/"+eval("/:c3"))._visible=false;
    if(_root.finish==6){
    _root.gotoAndStop(5);
    }else{
    _root.gotoAndStop(2)
    }
    }
  • 回到場景中點選第五各影格中的"再玩一次"按鈕元件,加上按鈕元件動作。
    on(release){
    for(i=1;i<=12;i++){
    with(eval("/card"+i)){
    _visible=true;
    gotoAndStop(1);
    }
    }
    gotoAndPlay(1);
    }
EX5.拼圖遊戲
  • 開啟檔案FLD0405.FLA。
  • 於"行為指令"圖層的第1各影格輸入影格動作,如下。
    stop();
    for(i=1;i<=20;i++){
    setProperty("p"+i,_x,1000);
    setProperty("p"+i,_y,1000);
    }

  • 於場景中"開始"按鈕元件加上動作。
    on(press){
    score=0;
    gotoAndStop(2);
    timer.gotoAndPlay(1);
    finish.gotoAndStop(1);
    for(i=1;i<=20;i++){
    setProperty("p"+i+"a",_alpha,"0");
    setProperty("p"+i,_x,random(300)+100);
    setProperty("p"+i,_y,random(200)+100);
    }
    }

  • 於元件庫中,雙擊"計時器"影片片段元件,"文字"與"底圖"圖層,於第13各影格中插入影格F5
  • 於"行為指令"圖層中,第一各影格加入動作 time=0;
  • 於第二各影格上插入空白關鍵影格F7,加上影格動作。
    if(_root.score==20){
    stop();
    }

  • 於第13各影格上插入空白關鍵影格F7,加上影格動作。
    time++;
    gotoAndPlay(2);

  • 於元件庫中,選取"beep.wav"音效檔,右鍵 / 連結,勾選"繪出給ActionScript使用",識別名稱輸入"beep"
  • 於元件庫中,找到"完成的影片片段"資料夾中的p1~p20影片片段元件,雙擊進入編輯環境,選取按鈕元件皆加上按鈕動作如下。
    on(press){
    startDrag("",true);
    }
    on(release){
    stopDrag();
    //如果圖片位置正確
    if("/"+_name+"a"==_droptarget){
    mysnd=new Sound();
    mysnd.attachSound("beep");
    setProperty("/"+_name+"a",_alpha,100);
    setProperty("",_y,1000);
    _root.score=_root.score+1; //分數加一
    if(_root.score==20){
    _root.finish.gotoAndPlay(2);
    }
    }
    }