第十話 TQC認證0002
EX1.WO-COW MTV

  • 於BAR圖層上新增一圖層(影片),檔案 / 匯入 / 匯入視訊;選擇FLDMOV.MOV,"在SWF中內嵌視訊並在時間軸中播放",完成匯入,在場景中置於X80,Y30,實體名稱為MOV.
  • 新增一圖層(遮色片),寬200高150像素,置於X100Y45.
  • 於BAR圖層上新增一圖層(按鈕),視窗 / 組件中,VIDEO組件中,選取PlayButton,StopButton,PauseButton,BackButton,ForwardButton等5各組件按鈕,置於BAR上.
  • 點選PlayButton按鈕,呼叫視窗 / 行為指令,按下+號, 內嵌視訊-播放視訊,選擇實體名稱為MOV的視訊影片,確定,事件:放開時.
  • 點選StopButton按鈕,行為指令面板中,按下+號, 內嵌視訊-停止視訊,選擇實體名稱為MOV的視訊影片,確定,事件:放開時.
  • 點選PauseButton按鈕,行為指令面板中,按下+號, 內嵌視訊-暫停視訊,選擇實體名稱為MOV的視訊影片,確定,事件:放開時.
  • 點選BackButton按鈕,行為指令面板中,按下+號, 內嵌視訊-暫停視訊,選擇實體名稱為MOV的視訊影片,確定,事件:放開時,在按下+號, 內嵌視訊-倒帶視訊,影格數為5,選擇實體名稱為MOV的視訊影片,確定,事件:按下時.
  • 點選ForwardButton按鈕,行為指令面板中,按下+號, 內嵌視訊-暫停視訊,選擇實體名稱為MOV的視訊影片,確定,事件:放開時,在按下+號, 內嵌視訊-視訊快速前轉,影格數為5,選擇實體名稱為MOV的視訊影片,確定,事件:按下時.
EX2.蝴蝶的一生

  • 先將影格速率改為 9 FPS.
  • 在元件庫中,於movie影片片段元件上,右鍵 / 連結,勾選"匯出給ActionScript使用",識別名稱為FLD_MC.
  • 將場景上的4各按鈕,分別設定實體名稱為bt1~bt4.
  • 於as圖層第一個影格,增加影格動作,如下:

    bt1.onRelease=function(){
    duplicateMovieClip("mc","mc1",99)
    }

    bt2.onRelease=function(){
    attachMovie("FLD_MC","movie",1)
    movie._x=150;
    movie._y=210;
    }

    bt3.onRelease=function(){
    loadMovieNum("FLDbutterfly.swf",1);
    }

    bt4.onRelease=function(){
    tqctext.scroll=0;
    loadVariables("FLDbutterfly.txt",_root);
    }
  • 場景中的動態文字旁的往下按鈕之動作:

    on(release){
    tqctxt.scroll+=3;
    }

  • 場景中的動態文字旁的往上按鈕之動作:

    on(release){
    tqctxt.scroll-=3;
    }
EX3.汽車展示

  • 先將影格速率改為 9 FPS.
  • 進入場景中汽車影片片段之編輯環境,新增一圖層,將原件庫中的隱形按鈕,拖曳並於汽車置中對齊.
  • 並於第一影格中增加影格動作,flag=1;.
  • 回到場景中,於汽車影片片段上增加動作如下:

    on(release){
    flag ++;
    if(flag%2==0){
    stop();
    }else{
    play();
    }
    }

  • 於元件庫中,點2下"拖曳"影片片段元件,進入編輯環境,於按紐元件上增加動作如下:

    on(press){
    startDrag("",false,0,-100,0,100);
    }
    on(release,releaseOutside){
    stopDrag();
    }

  • 回到場景中,選取大小捲軸上的動態文字,設定實體名稱為:ss .
  • 進入大小捲軸影片片段元件編輯環境,於第一個影格加入影格動作如下:

    y=button._y;
    out=(100-y)/200;
    setProperty(eval("_root.car"),_xscale,out*100);
    setProperty(eval("_root.car"),_yscale,out*100);
    _root.ss=int(out*100)+"%";


    第2個影格加入影格動作:gotoAndPlay(1);
  • 回到場景中,選取旋轉捲軸上的動態文字,設定實體名稱為:angle.
  • 進入旋轉捲軸影片片段元件編輯環境,於第一個影格加入影格動作如下:

    y=button._y;
    out=(100-y)/200;
    setProperty(eval("_root.car"),_rotation,out*360-180);
    _root.angle=int((out*360)-180)+"%";


    第2個影格加入影格動作:gotoAndPlay(1);
EX4.猜拳遊戲

  • 於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);
    }

EX5.整數計算機

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

    stop();
    //-------------------------------------
    function NumKeyPress(nn) {
    if(ClearFlag){
    ClearFlag=false;
    out.text="0";
    }
    if(out.length<8){
    out.text=String(Number(out.text)*10+Number(nn));
    }
    }
    //-------------------------------------
    function OpPress(op){
    if(!ClearFlag){
    DoCalc(LastOp,LastOpd,Number(out.text));
    LastOpd=Result;
    }
    LastOp=op;
    out.text=String(LastOpd);
    ClearFlag=true;
    }
    //-------------------------------------
    function DoCalc(op,opd1,opd2) {
    switch(op){
    case 1:
    Result=opd1 + opd2;
    break;
    case 2:
    Result=opd1 - opd2;
    break;
    case 3:
    Result=opd1 * opd2;
    break;
    case 4:
    Result=int(opd1 / opd2);
    break;
    default:
    Result=opd2;
    break;
    }
    }
  • 場景中"CE"按鈕動中:

    on(release){
    out.text="0";
    }

  • 場景中"OFF"按鈕動中:

    on(release){
    fscommand("quit");
    }

  • 其餘按鈕皆加上鍵盤動作,例:

    場景中"0"按鈕動中:

    on (release, keyPress "0") {
    NumKeyPress('0');
    }