Flash AS 入門教程 多維數(shù)組和雙重循環(huán)使用介紹

我們先看一個效果,如下圖:
思考方法
很顯然,我們用到了一個mc對另外一個mc的遮罩。它的原理是:在作為遮罩片的mc中,復(fù)制部分小方塊mc,并且隨機放置這些小方塊mc。當(dāng)然,這樣的隨機放置不是任意的,必須滿足兩個條件:放置的位置不重復(fù);能夠完全遮罩圖形。這里的方法是:
1、計算小方塊mc在作為遮罩片mc中順序放置的位置的坐標(biāo);
2 、把放置小方塊mc的坐標(biāo)存放入一個數(shù)組,使這個數(shù)組的每一個元素都包括兩個數(shù)值(橫坐標(biāo),縱坐標(biāo))。因此,這個數(shù)組包括了小方塊所有的放置的位置。這里,我們要用到2維數(shù)組的有關(guān)知識;
3、復(fù)制小方塊mc,每復(fù)制一個mc,從2維數(shù)組中隨機選一個元素,把這個元素中的橫坐標(biāo)和縱坐標(biāo)分別賦給這個mc。
例題
打開源文件3.8.fla,在第2層的元件1內(nèi)的第1幀上的腳本為:
this.zfx_mc._visible = false;
var temp_arry = new Array();//定義數(shù)組temp
for (i=0; i<=14; i++) {//注意理解雙重循環(huán)時執(zhí)行順序
//從上到下共15行小正方形是20*20,圖片面積是400*300
for (j=0; j<=19; j++) { //從左到右20列;
temp_arry.push([-190+20*j, -140+20*i]);
//把橫坐標(biāo)和縱坐標(biāo)數(shù)值作為一個元素,加入數(shù)組temp_arry.
}
}
i = 0; //設(shè)置變量i=0;
_root.attachMovie("tu", "tu", 500);
//從庫中鏈接元件“tu”,鏈接到舞臺的名稱為“tu”,深度為500
_root.tu._x = 200;//把“tu”擺放在舞臺中央
_root.tu._y = 150;
_root.tu.setMask(this);//設(shè)置本影片剪輯為遮罩,“tu”為被遮罩。
this.onEnterFrame = function() {//本影片剪輯執(zhí)行事件處理函數(shù);
duplicateMovieClip(this.zfx_mc, "zfx"+i, i);
//復(fù)制本影片剪輯下的zfx_mc,復(fù)制后的名稱為"zfx"+i,深度為i;
k = Math.floor(Math.random()*temp_arry.length);
//在數(shù)組temp_arry中隨機選出一個元素的序號k
this["zfx"+i]._x = temp_arry[k][0];
//把在數(shù)組temp_arry中第k個元素的第1個值作為this["zfx"+i]的橫坐標(biāo);
this["zfx"+i]._y = temp_arry[k][1];
//把在數(shù)組temp_arry中第k個元素的第2個值作為this["zfx"+i]的縱坐標(biāo);
temp_arry.splice(k, 1);//把數(shù)組temp_arry中第k個元素刪掉;
i++;
if (i == 300) {//一共需要復(fù)制300個mc
delete this.onEnterFrame;//刪除本影片剪輯事件處理函數(shù),釋放內(nèi)存。
}
};
另外,小正方形zfx_mc有60幀的運動補間,在60幀上有個:stop()
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實現(xiàn)代碼分享
flash cs6想要實現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-01-25Flash中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?
本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12- 本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11- Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下2017-05-23
- Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2017-04-23