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

首頁 > 辦公 > Flash > 正文

Flash AS 入門 duplicateMovieClip和removeMovieClip應用

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

  這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。

  源文件下載

  本節應掌握的知識要點:

 ?、賒uplicateMovieClip和removeMovieClip應用;②_visible屬性應用;③數組應用。

  復制影片剪輯語句duplicateMovieClip也是在Flash AS 中應用非常多的語句,許多精彩的特效都離不開這個語句,其語法格式如下:

  duplicateMovieClip(目標, 新名稱, 深度)

  “目標”參數為要進行復制的目標影片剪輯。

  “新名稱” 參數為新復制的影片剪輯的唯一標識符。

  “深度” 參數為新復制的影片剪輯的唯一深度級別。

  removeMovieClip是與duplicateMovieClip經常配合使用的語句,其作用是用來刪除指定的影片剪輯,格式如下:

  removeMovieClip(目標)

  “目標”參數為用 duplicateMovieClip() 創建的影片剪輯實例的目標路徑?;蛘呤怯?MovieClip.attachMovie() 或 MovieClip.duplicateMovieClip() 創建的影片剪輯的實例名稱。

  這一節還要用到一個“_visible”屬性,它返回的是一個用“true”或者“false” 表示的布爾值,用于指令特定的影片剪輯或者按鈕對象可見還是不可見,rue為可見,false為不可見。也可以用1或者0表示,1表示可見,0表示不可見。

  請看示例動畫“實例1-6”。

  >>>>>點擊查看動畫效果<<<<<

  實例1-6 復制和刪除“影片剪輯”

  初始的畫面上沒有任何動畫效果,當我們點擊“play”按鈕后,就會依次從場景左側跳出5只小松鼠,奔跑一個來回后排列在場景左側原地跳躍。當我們再一次點擊“play”按鈕,會看見5只小松鼠再一次從場景左側依次跳躍出來,同時場景上原地跳躍的小松鼠會一一消失。這個效果就是應用了“duplicateMovieClip”語句實現的。

  打開源文件,分析一下影片結構,主場景上有10幀,3個圖層,圖層1上是按鈕和背景,圖層2上有一只放置在場景左上角的實例名為shu_mc的小松鼠影片剪輯,進入這個小松鼠的編輯場景,可以看到是一個120幀的補間動畫,第1-60幀,小松鼠由場景左側運動到右側,第61-120幀,再由右側回到左側,第120幀上有一個stop動作,令小松鼠運動一個來回后停留在場景左側。

  看看主場景“as”圖層上設置的動作:

  第1幀上的動作:

  stop();

  _root.shu_mc._visible=0

  第2幀上的動作:

  x = 0;

  y = 0;

  第3幀上的動作:

  x = x+1;

  if (x<=5) {

  duplicateMovieClip(shu_mc, "shu_mc" + x, x);

  _root["shu_mc" + x]._x = _root.shu_mc._x+(-15*x);

  _root["shu_mc" + x]._y = _root.shu_mc._y+(30*x);

  }

  第10幀上的動作:

  if (x<=5) {

  gotoAndPlay(3);

  } else {

  stop();

  }

  “play”按鈕上的動作:

  on (release) {

  gotoAndPlay(2);

  }

  “刪除mc”按鈕上的動作:

  on (release) {

  if (x>5) {

  y = y+1;

  removeMovieClip("shu_mc"+y);

  }

  }

  第1幀、第2幀和第10幀上的語句是我們已經學習過的,現在先來認識一下第3幀上i大括號“{}”里面的三行語句。

  duplicateMovieClip(shu_mc, "shu_mc" + x, x);小括號“()”里定義了三個參數:

  shu_mc為要進行復制的目標影片剪輯對象。

  "shu_mc"+x 為新復制的影片剪輯的唯一標識符,這個標識符是由字符串“shu_mc”連接上通過運算取得的x的值得來的,即新復制出的影片剪輯名稱依次為shu_mc1、shu_mc2、……shu_mc5,在這里加號“+”是連接符,shu_mc+x也可以寫成shu_mc add x。

  后面一個參數x為新復制的影片剪輯的深度級別,在這里依次為1、2、3、4、5。在同一時間線上,每一個新復制的影片剪輯占用一個唯一的深度級別,并層層堆疊,如果后復制出的影片剪輯與前面復制出的影片剪輯深度級別相同就會覆蓋并替換掉前一個影片剪輯,所以必須為每一個新復制的影片剪輯分配一個唯一的深度級別。

 下面兩行語句是為新復制的影片剪輯重置x、y坐標屬性,

  _root["shu_mc" + x]._x = _root.shu_mc._x-15*x;

  _root["shu_mc" + x]._y = _root.shu_mc._y+30*x;

  這里又出現了一個新的運算符,方括號“[ ]”是數組運算符,里面的參數為相同類型的一組數據,本節接觸的_root["shu_mc" + x]只是數組運算的一種形式,在這里方括號“[ ]”里運算的結果即為shu_mc1、shu_mc2、……shu_mc5。在這里使用數組可以動態的給_x、_y屬性賦值。

  賦值符號“=”右邊的表達式以父本shu_mc影片剪輯的x、y位置為依據,計算出每一個新復制的影片剪輯的相應坐標位置,實際效果是x坐標左移15*x像素,y坐標下移30*x像素。

  現在我們來分析一下這些語句的執行流程及功能:

  第1幀上的兩行語句是前面學過的,影片一開始播放,就停止在第一幀,并由第二行語句設置場景上的shu_mc影片剪輯的_visible屬性為0,即不可見。所以當影片開始播放時,看不見主場景上左側那只小松鼠。

  第2幀定義了兩個變量x、y,并分別為其賦予初始值為0。

  第3幀是這一節的關鍵,第1行語句設置變量x的值為x+1,當播放頭第一次到達第3幀時,這時x=0+1,即x的值為1。

  接下來,在if語句塊里,設置了一個條件,當(x<=5)時,執行大括號“{}”語句塊里的復制影片剪輯的語句。由于當前x的值為1,符合條件,這時復制出第一個名稱為“shu_mc1”、層深度為“1”的小松鼠影片剪輯,并以父本小松鼠的位置為依據左移15*1像素、下移30*1像素出現在場景中,由于每一個新復制出的影片剪輯都會從自身時間軸的第1幀開始完整的播放,所以這時我們看到第一只小松鼠跑了出來,在場景上奔跑了一個來回后停止在場景左側原地跳躍,即從shu_mc影片剪輯的第1幀運行到第120幀然后停止下來。

  播放頭前進到第10幀,又有一個判斷條件,如果x<=5則跳轉到第3幀并播放,否則就停留在第10幀。當符合條件再一次跳轉到第3幀時,這時x的值為2了,于是又復制出名稱為“shu_mc2”、層深度為“2”的第二只小松鼠影片剪輯,并以父本小松鼠的位置為依據再左移15*2像素、下移30*2像素出現在場景中,我們看到第二只小松鼠跑了出來,在場景上奔跑一個來回后停止在場景左側原地跳躍。

  按照設定的條件反復判斷,當超出了x<=5的條件時,播放頭便停留在第10幀上了。

  這時,場景上復制出的5只小松鼠都完成了各自時間軸上120幀的運動后在場景左側按照各自的x、y位置排列原地跳躍。

  as圖層上的語句執行完了。

  這時,當我們點擊“刪除mc”按鈕,y的值為1,removeMovieClip("shu_mc"+y)為removeMovieClip(shu_mc1),shu_mc1影片剪輯被刪除,繼續點擊,就會依次將shu_mc2、……shu_mc5一一刪除。

  當我們再次點擊場景右下角的“play”按鈕,播放頭將跳轉到第2幀并播放,x和y重置為0,再次重復上一次的復制過程。

  如果復制完成5只小松鼠后,我們不點“刪除mc”按鈕而再次直接點擊“play”按鈕,這時就會看到,每復制出一只小松鼠,相同層深上的那一只小松鼠立即消失掉,這就是我們上面所講的“新復制出的影片剪輯與前面復制出的影片剪輯深度級別相同就會覆蓋并替換前一個影片剪輯”。

  關于復制出的影片剪輯的層深度問題,我們再用一個直觀一點的示例來加深理解,請看實例1-7。

  >>>>>點擊查看動畫效果<<<<<

  實例1-7 層深度理解

  場景上共兩幀,第1幀設定作為復制父本的 “yuan_mc”影片剪輯不可見,定義一個變量“x”,并設定其初始值為“0”;第2幀設置stop讓播放頭停留在該處,等待按鈕事件來控制下一步的動作。每點擊一次“復制mc”按鈕,就會按照設定的條件以及設定的屬性值復制出一個新的影片剪輯,并依次根據x的值命名為yuan_mc1、yuan_mc2、……、yuan_mc5,可以清楚的看見,復制出的影片剪輯各自占用一個唯一的特定深度層,深度層根據x的值依次為1、2、3、4、5,后復制出的影片剪輯總是疊放在先復制出的影片剪輯的上面一層,當按照設置的條件復制出5個mc后, 再繼續點擊“復制mc”按鈕又會依次復制出yuan_mc1、yuan_mc2、……、yuan_mv5,再次復制出的影片剪輯依然占用1、2、3、4、5深度層,這時相應深度層上原有的影片剪輯就被替換掉了。

  復制影片剪輯的語句也可以用點語法“.”的格式來寫:

  例如:duplicateMovieClip(shu_mc, "shu_mc" + x, x);

  可以寫成:shu_mc.duplicateMovieClip("shu_mc" + x, x);

  課后練習:素材源文件下載

  用提供的課后練習素材源文件,在相應的關鍵幀和按鈕上添加語句,實現如下效果:

  1. 點擊“復制mc”按鈕由下至上逐一復制出5個橢圓,位置如練習6所示;

  2. 點擊紅色“刪除mc”按鈕,由下至上逐一刪除復制出的橢圓;

  3. 點擊黃色“刪除mc”按鈕,由上至下逐一刪除復制出的橢圓。

  提示:設置的坐標和調整縮放比例,可根據效果測試一個合適的值,不要求和示例效果一模一樣。

  >>>>>點擊查看動畫效果<<<<<

  課后練習1-7效果

  這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>?!?/p>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美二区三区 | 亚洲一区二区三区 | 国产精品v欧美精品v日韩 | 97视频| 最新精品在线 | 污视频网站在线免费 | 欧美日一区 | 一本大道久久a久久精二百 精品一区二区三区免费毛片爱 | 国产精品多久久久久久情趣酒店 | 国产精品久久久久久久久免费丝袜 | 久久精品中文字幕一区 | 日韩中文字幕视频在线观看 | 欧美综合网| 日韩啊啊啊 | 福利91| 精品欧美一二三区 | 欧美在线观看一区 | 精品久久久久久久久久久久 | 日韩成人av在线 | 草久在线视频 | 日韩视频中文 | 国产极品视频在线观看 | 欧美午夜影院 | av免费网站在线观看 | 美女国产精品 | 欧美视频精品 | 四虎最新紧急更新地址 | 草逼逼 | 亚洲欧美中文日韩在线v日本 | 久久久久一 | 久久综合九色综合欧美狠狠 | 日本亚洲一区 | 国产99久久精品 | www.99热| 男女啪啪高清无遮挡 | 日韩一区不卡 | 国产精品一区二区在线观看 | 在线看黄色av | 欧美精品一区二区三区一线天视频 | 国产亚洲综合视频 | 免费亚洲成人 |