麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash AS 入門教程 三個實例講解

2020-07-17 13:13:42
字體:
供稿:網(wǎng)友

  一、畫正玄圖象,由外部輸入控制起點橫坐標、震幅和跨度。源文件下載

  點擊查看動畫效果<

  思路:我們可以在作業(yè)源程序中發(fā)現(xiàn):


復(fù)制代碼
代碼如下:

  .......
  moveTo(100, 200); //正玄線的起點坐標為(100,200)可以把橫坐標用一個變量(a)來表示
  ........

  y = 200-100*Math.sin(i*Math.PI/180);//其中100決定震幅大小,我們可以用變量(b)來表示;橫坐標1個象數(shù),對應(yīng)表示1度的角度,在一個周期360度的條件下,如果橫坐標1個象數(shù)對應(yīng)幾度,那么跨度顯然會減小,就是說sin(i*Math.PI/180)中i的系數(shù)決定跨度的大小,經(jīng)過反復(fù)測試這個系數(shù)為360/c比較合理。因此,原來程序中的這兩條可以改為:


復(fù)制代碼
代碼如下:

  moveTo(a, 200);
  y = 200-b*Math.sin(360/c*i*Math.PI/180)


  為了能夠重復(fù)使用這個畫圖程序,顯然我們應(yīng)該用自定義函數(shù),上面的三個變量就可以做為參數(shù)。

  打開源程序3.7.1.fla文件,這里只記與作業(yè)不同的地方:

  第1幀上:


復(fù)制代碼
代碼如下:

  a = b=c=""; //對輸入文本變量賦初值
  function huaxian(a, b, c) { //自定義函數(shù),函數(shù)名為huaxian,參數(shù)為三個文本變量
   ............
  y = 200-b*Math.sin(360/c*i*Math.PI/180);//b決定震幅,c決定跨度
   .....
  if (i>c) { //超過360度時(由360/c*i>360計算得到i>c)
   delete onEnterFrame; //刪除事件
  }
 };
}
  huaxian(100, 100, 360); //先畫一個正玄圖象


  按扭上的腳本:


復(fù)制代碼
代碼如下:

  on (release) {
   if (c<36) {
    web = "請輸入36以上的整數(shù)"; //跨度太小,圖象誤差太大
   } else {
    web=""
    _root.huaxian(Number(a), Number(b), Number(c));//調(diào)自定義函數(shù),并且把其中參數(shù)轉(zhuǎn)化為數(shù)值
  }
 }

  二、把文字和下面的mc的位置都分別作任意的排列

  點擊查看動畫效果<

  思路:考慮mc位置的亂排,這些mc的縱坐標都相同,因此,我們主要考慮亂排橫坐標。我們把這些mc的6個橫坐標放入一個數(shù)組,用上一節(jié)講的辦法,很容易實現(xiàn)亂排的效果。

  打開3.7.1.fla文件

  在第1幀上的腳本為:


復(fù)制代碼
代碼如下:

  stop();
  i = 0;
  w_arry = [30, 110, 190, 270, 350, 430]; //把文本的橫坐標作為一個數(shù)組
  for (t=1; t<7; t++) {
     m = Math.floor(Math.random()*w_arry.length);//從數(shù)組中任意選出一個編號
     this["wz"+t]._x = w_arry[m]; //把數(shù)組中這個編號的元數(shù)作為這個文本的橫坐標
     w_arry.splice(m, 1);     //從這個數(shù)組中刪去這個元數(shù);
     this["wz"+t]._y = 30;    //設(shè)置這個文本的縱坐標
   }
  tx_arry = [76, 156, 236, 316, 396, 476]; //與上面類同;
  for (s=1; s<7; s++) {
   m = Math.floor(Math.random()*tx_arry.length);
   this["tx"+s+"_mc"]._x = tx_arry[m];
   tx_arry.splice(m, 1);
   this["tx"+i+"_mc"]._y = 320;
 }
  function stlx(md, mc) {  //設(shè)置自定義函數(shù)
   md.x = md._x;      //影片剪輯的坐標用這個影片剪輯下的變量x,y來保存
   md.y = md._y;
   md.onPress = function() { //鼠標在md上按下時;
    startDrag(this, true);  //拖動這個md;
   };
   md.onRelease = function() { //鼠標在md上松開時;
     stopDrag();       //停止拖動;
     if (md.hitTest(mc)) {  //如果md和mc交叉或者重疊;
       if (md.k != 1) {   //又如果md下的變量k不等于1的話;
         i++;       //變量i加1;
         md.k = 1;     //使md下的變量k=1;
        }
       if (i == 6) {     //如果i等于6;
         nextFrame();//到下一幀停下;
       }
    } else { //如果md和nc不重疊或者相交;
     md._x = md.x; //把md原來的坐標賦給md(回到原來的位置)
     md._y = md.y;
    }
   };
  }
   for (j=1; j<7; j++) { //相當于在6個mc上調(diào)自定義函數(shù)
    stlx(this["tx"+j+"_mc"], this["wz"+j]);
   }
  /* 例如,j=1,那么就是:
   stlx(this.tx1_mc,this.wz1)
  */

  三、這四個元件開始順序播放時,一個結(jié)束到另外一個開始的時間 間隔就能等于輸入 的時間 ?隨機播放的時候 一個結(jié)束到另一個播放的時間 的間隔也等于輸入 的時間

  點擊查看動畫效果<

  思路:

  方法1 可以在4個元件的最后一幀上加腳本,使另外的元件隔一定時間開始播放;

  方法2 可以使用(幀頻)事件處理函數(shù)來監(jiān)測,如果影片的當前幀等于總幀數(shù),那么這個影片播放完畢,讓其它影片開始播放。用方法2比較簡單。

  打開 3.7.3fla文件:

  在第1幀上的腳本為:


復(fù)制代碼
代碼如下:

   yp_array = [aa, bb, cc, dd]; //把4個mc作為數(shù)組yp_array的元素;
   time = "";
   i = 0;
   function du() {       //自定義函數(shù)du
    yp_array[i].play();    //播放數(shù)組yp_array中第i個mc
    yp_array[i].onEnterFrame = function() { //對這個mc使用事件處理函數(shù)
      if (this._currentframe == this._totalframes) { //如果這個mc的當前幀等于總幀數(shù);
        sj = setInterval(du, time*1000);  //間隔time*1000毫秒調(diào)這個自定義函數(shù)du;
        delete this.onEnterFrame;     //刪除事件;
       }
    };
  clearInterval(sj);           //清除時間間隔函數(shù)
   i++;
 }
   function duing() {
    k = Math.floor(Math.random()*yp_array.length);
           //根據(jù)數(shù)組yp_array的長度,選擇一個隨機數(shù)k;
    yp_array[k].play();         //數(shù)組yp_array中的第k個mc播放
    yp_array[k].onEnterFrame = function() {  //對這個mc使用事件處理函數(shù)
      if (this._currentframe == this._totalframes) { //如果這個mc的當前幀等于總幀數(shù);
        sjing = setInterval(duing, time*1000); 
            //間隔time*1000毫秒調(diào)這個自定義函數(shù)duing;
        delete this.onEnterFrame; //刪除事件;
       }
     };
   yp_array.splice(k, 1);  //從數(shù)組yp_array中刪除第k個元數(shù)
   clearInterval(sjing);  //清除時間間隔函數(shù)
  }

  在按扭“順序播放”上的腳本:


復(fù)制代碼
代碼如下:

  on (release) {
   yp_array = [aa, bb, cc, dd];//重新給數(shù)組yp_array賦值
   clearInterval(sjing);
     //刪除隨機播放時的時間間隔函數(shù);這兩句是防止先按“隨機播放”后出錯。
   i = 0; //重新給變量賦值。
   if (time != "") {
    du(); //調(diào)函數(shù)du
   }
  }

  在按扭“隨機播放”上的腳本:


復(fù)制代碼
代碼如下:

 on (release) { //與“順序播放”按扭上的腳本類似
  yp_array = [aa, bb, cc, dd];
  clearInterval(sj);
  i = 0;
  if (time != "") {
   duing();
    }
  }

  查看全套"Flash AS 高級教程"

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本黄色免费播放 | 在线免费观看欧美 | 精品一区二区久久久久 | 午夜视频你懂的 | 国产精品一区二区三区在线 | 日日艹夜夜艹 | 艹男人的日日夜夜 | 黄色网址免费进入 | 九九热在线视频观看这里只有精品 | 久久精品亚洲一区二区 | 欧美毛片| 伊人久久国产精品 | 日韩中文字幕三区 | 欧美成在线视频 | 中文字幕亚洲情99在线 | 国产精品免费大片 | 91久久国产露脸精品国产 | 欧美a视频 | 天天艹综合 | chinese 军人 gay xx 呻吟 | 草草视频在线播放 | 黑人一级片视频 | 午夜精品久久久久久中宇 | 中文字幕精品一区久久久久 | 日韩字幕在线观看 | 一级在线视频 | 国产午夜电影 | 黄色片在线观看网站 | 性大片免费看 | 久久精品一二三区 | 久久av免费 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 操操日日 | 久草在线观看资源 | 97人人草| 久久久久一区二区三区四区五区 | 污污黄| 色播视频在线播放 | 黄色美女网站免费看 | 看片一区二区三区 | 久久久国产精品免费观看 |