Flash AS 教程:多種圖片切換效果_Flash教程
推薦:Flash AS教程:填色游戲的制作先試試效果: 在本次課程中我們將學(xué)習(xí)使用 Color 類(lèi)來(lái)制作一個(gè)填色游戲,并通過(guò)本實(shí)例復(fù)習(xí) for...in 及 SharedObject 的應(yīng)用。 思路: 1.使用腳本代碼創(chuàng)建一個(gè)調(diào)色盤(pán),鼠標(biāo)點(diǎn)擊色塊后進(jìn)行取色; 2.繪制作為填充的影片剪輯并把每一部都存為影片剪輯。例如:填充對(duì)象是一
先看看效果:
這是我們經(jīng)常會(huì)在瀏覽網(wǎng)頁(yè)和論壇時(shí)看到的圖片轉(zhuǎn)場(chǎng)效果,制作這些效果我們會(huì)很自然想到用setMask函數(shù)來(lái)完成,在本節(jié)中我們將介紹七種基本轉(zhuǎn)場(chǎng)效果。
思路:
1. 注重共三張圖片,一張是底版(pic_old)放在最底層,一張是切換來(lái)的新圖(pic_new)放在中間層,最后還有一張用來(lái)做新圖的遮罩層(mask);
2. 新圖和底版的深度不要顛倒,新圖要比底版的深度高,否則會(huì)發(fā)生錯(cuò)誤;
3. 我們只在mask上面作文章,讓mask去加載遮罩物,這樣就可以完成許許多多不同的效果了。
步驟1:
(1) 繪制一個(gè)正方形(50*50),注冊(cè)點(diǎn)在中心,保存為影片剪輯連接—>導(dǎo)出—>標(biāo)志符 Rec;
(2) 繪制一個(gè)圓形(50*50),注冊(cè)點(diǎn)在中心,保存為影片剪輯連接—>導(dǎo)出—>標(biāo)志符 Cir;
(3) 導(dǎo)入圖片n張,均保存為影片剪輯,注冊(cè)點(diǎn)在左上(0,0)這些圖片的連接—>導(dǎo)出—>標(biāo)志符 分別從 pic1, pic2, pic3 ... ... picn
步驟2:
加入AS代碼:
//臨時(shí)變量用于存儲(chǔ)當(dāng)前圖片
var n:Number = 0;
//變量n為當(dāng)前所在圖片
var Num:Number = 5;
//Num圖片數(shù)量
//=======================================================
//鼠標(biāo)點(diǎn)擊后設(shè)置底版圖、新圖和遮罩層,并調(diào)用(PassEffect)
_root.onMouseDown = function() {
n = n < Num ? n : 1 ;
_root.createEmptyMovieClip("pic_old", -3);
pic_old.attachMovie(old_p, old_p, 1);
old_p = "pic" n;
_root.createEmptyMovieClip("pic_new", -2);
pic_new.attachMovie("pic" n, pic, 1);
_root.createEmptyMovieClip("mask", -1);
pic_new[pic].setMask(mask);
//在測(cè)試時(shí),可以把setMask這句注釋掉,可更好地觀察遮罩層的情況
PassEffect();
};
//============================================================
function PassEffect() {
switch (1 Math.floor(Math.random()*7)) {
//***************效果1[見(jiàn)附錄](méi)***************
//復(fù)制若干個(gè)圓,分布在每行每列,并使每個(gè)圓的大小不斷增加至覆蓋整張圖
case 1 :
for (i=0; i<7; i ) {
for (j=0; j<6; j ) {
var p:MovieClip = mask.attachMovie("Cir", "Cir" i*10 j,
i*10 j);
//注重這里是mask.attachMovie(),加載來(lái)的圖形都屬于遮罩層(mask)
p._width = 20;
p._height = 20;
p._x = 20 i*60;
p._y = 20 j*60;
p.onEnterFrame = function() {
if (this._width<180) {
this._width = this._height = 8;
} else {
delete this.onEnterFrame;
}
};
}
}
break;
//=================================================================
//***************效果2[見(jiàn)附錄](méi)***************
//復(fù)制一個(gè)正方形,放入舞臺(tái)中心,設(shè)置他其初始大小為10*10,并放大case 2 :
var p:MovieClip = mask.attachMovie("Rec", Rec, 1);
p._width = 10;
p._height = 10;
p._x = Stage.width/2;
p._y = Stage.height/2;
p.onEnterFrame = function() {
if (this._width
this._width = 40;
this._height = 40;
} else {
delete this.onEnterFrame;
}
};
break;
//=================================================================
//***************效果3[見(jiàn)附錄](méi)****************
//復(fù)制一個(gè)正方形,其初始大小比舞臺(tái)的尺寸多一些,使其移動(dòng)到舞臺(tái)中心case 3 :
var p:MovieClip = mask.attachMovie("Rec", "Rec" 1, 1);
p._width = Stage.width 10;
p._height = Stage.height 10;
p._x = 0-p._width;
p._y = 0-p._height;
p.onEnterFrame = function() {
this._x = (Stage.width/2-this._x)*0.3;
this._y = (Stage.height/2-this._y)*0.3;
};
break;
//=================================================================
//***************效果4[見(jiàn)附錄](méi)***************
//復(fù)制二個(gè)正方形,放到舞臺(tái)外的左右各一個(gè),使它們都向舞臺(tái)中心移動(dòng)case 4 :
var p:MovieClip = mask.attachMovie("Rec", "Rec" 1, 1);
p._width = Stage.width;
p._height = Stage.height;
p._x = -p._width/2;
p._y = Stage.height/2;
p.onEnterFrame = function() {
if (this._x
this._x = 15;
} else {
delete this.onEnterFrame;
}
};
var p:MovieClip = mask.attachMovie("Rec", "Rec" 2, 2);
p._width = Stage.width;
p._height = Stage.height;
p._x = Stage.width p._width/2;
p._y = Stage.height/2;
p.onEnterFrame = function() {
if (this._x>Stage.width/2) {
this._x -= 15;
} else {
delete this.onEnterFrame;
}
};
break;
//=================================================================
//***************效果5[見(jiàn)附錄](méi)***************
//隨機(jī)產(chǎn)生兩種傾斜角度,用一個(gè)遞增變量d_time來(lái)控制每個(gè)遮罩物的開(kāi)始時(shí)間case 5 :
if (Math.random()<=0.5) {
var rotation = 45;
} else {
var rotation = -45;
}
for (i=-10, d_time=0; i<30; i , d_time ) {
var p:MovieClip = mask.attachMovie("Rec", "Rec" d_time, d_time);
p._width = 0;
p._height = Stage.height*2;
p._x = p._width/2 i*20;
p._y = Stage.height/2;
p._rotation = rotation;
p.delay = d_time;
p.start_time = 0;
p.onEnterFrame = function() {
if (this.start_time
this.start_time = 3;
} else if (this._xscale<30) {
this._xscale = 2;
} else {
delete this.onEnterFrame;
}
};
}
break;
//=================================================================
//***************效果6[見(jiàn)附錄](méi)***************
//與效果5相近,但在遮罩物的尺寸及位置上要略加改動(dòng)case 6 :
if (Math.random()<=0.5) {
for (i=0; i<45; i ) {
var p:MovieClip = mask.attachMovie("Rec", "Rec" i, i);
p._width = 0;
p._height = Stage.height 10;
p._x = i*10;
p._y = Stage.height/2;
p.delay = i;
p.start_time = 0;
p.onEnterFrame = function() {
if (this.start_time
this.start_time = 3;
} else if (this._xscale<30) {
this._xscale = 2;
} else {
delete this.onEnterFrame;
}
};
}
} else {
for (i=0; i<35; i ) {
var p:MovieClip = mask.attachMovie("Rec", "Rec" i, i);
p._width = Stage.width 10;
p._height = 0;
p._x = Stage.width/2;
p._y = i*10;
p.delay = i;
p.start_time = 0;
p.onEnterFrame = function() {
if (this.start_time
this.start_time = 3;
} else if (this._yscale<30) {
this._yscale = 2;
} else {
delete this.onEnterFrame;
}
};
}
}
break;
//=================================================================
//***************效果7[見(jiàn)附錄](méi)***************
//復(fù)制長(zhǎng)條,均放在舞臺(tái)外的上方,并使Y坐標(biāo)有所差異,向下運(yùn)動(dòng)case 7 :
for (i=0; i<40; i ) {
var p:MovieClip = mask.attachMovie("Rec", "Rec" i, i);
p._width = 10;
p._height = Stage.height 50;
p._x = p._width/2 i*p._width;
p._y = -p._height Math.random()*50;
p.onEnterFrame = function() {
if (this._y
this._y = 20;
} else {
delete this.onEnterFrame;
}
};
}
break;
}
}
Flash充電1: MovieClip.setMask 方法 mc.setMask(mask:Object): 使參數(shù) mask 中的影片剪輯成為 mc 的遮罩層。
Flash充電2: 條件運(yùn)算符(三目運(yùn)算) ? :格式:expression1 ? expression2 : expression3
例如:
var x:Number = 5;
var y:Number = 10;
var z = (x < 6) ? x: y;
trace (z);
// returns 5
附錄:
效果1:
效果2:
效果3:
效果4:
效果5
效果6:
效果7:
分享:Flash入門(mén)教程:滾動(dòng)字幕動(dòng)畫(huà)的制作(1)在Flash中圖層與圖層之間的關(guān)系不僅是上面圖層擋住下面的圖層,而且還是互相制約的,其中遮罩層與被遮罩層的關(guān)系就是這樣的。這里通過(guò)一個(gè)簡(jiǎn)單的例子“滾動(dòng)字幕”,來(lái)加以說(shuō)明。 做動(dòng)畫(huà)之前,我們先來(lái)看一下遮罩的原理:遮罩層的對(duì)象外形就是被遮罩層的可見(jiàn)區(qū)域。說(shuō)白
- as中禁用ESC鍵
- AS3.0 圖片變黑白 圖片彩色變黑白代碼
- flash as3.0 跨域的解決辦法
- 模板無(wú)憂(yōu)FLASH透明代碼
- Flash教你制作卡通MM眨眼睛動(dòng)畫(huà)
- Flash從零開(kāi)始學(xué)習(xí)創(chuàng)建單選按鈕
- Flash繪制小龍與花插畫(huà)場(chǎng)景
- Flash程序的測(cè)試方法
- Flash CS4文字顏色緩動(dòng)特效
- 網(wǎng)頁(yè)中演示類(lèi)FLASH動(dòng)畫(huà)制作規(guī)范
- Flash CS3循環(huán)背景的運(yùn)用技巧
- Flash鼠繪技巧教你制作紅綠色的樹(shù)葉
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
猜你也喜歡看這些
- 2005新東方考研Flash課件(英語(yǔ)、政治)
- Flash as3.0視頻教程之聲音編程
- Flash CS4動(dòng)畫(huà)設(shè)計(jì)與制作300例
- 臺(tái)灣呂聰賢Flash MX視頻教程
- Flash 8入門(mén)必練
- Flash 8經(jīng)典動(dòng)畫(huà)設(shè)計(jì)實(shí)錄
- Flash CS3動(dòng)畫(huà)制作基礎(chǔ)與提高
- Authorware 7.0 Flash MX 2004多媒體創(chuàng)作實(shí)例導(dǎo)學(xué)
- Flash卡通動(dòng)畫(huà)設(shè)計(jì)-隨書(shū)光盤(pán)
- 課件\flash的多媒體教程
- 相關(guān)鏈接:
- 教程說(shuō)明:
Flash教程-Flash AS 教程:多種圖片切換效果
。