《Flash 8動(dòng)畫制作案例教程》課件第8章_第1頁
《Flash 8動(dòng)畫制作案例教程》課件第8章_第2頁
《Flash 8動(dòng)畫制作案例教程》課件第8章_第3頁
《Flash 8動(dòng)畫制作案例教程》課件第8章_第4頁
《Flash 8動(dòng)畫制作案例教程》課件第8章_第5頁
已閱讀5頁,還剩201頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

8.1關(guān)于動(dòng)作腳本8.2動(dòng)作面板8.3動(dòng)作腳本應(yīng)用體驗(yàn)8.4動(dòng)作腳本編程基礎(chǔ)8.5元件實(shí)例的命名和路徑的引用8.6常用動(dòng)作腳本8.7程序結(jié)構(gòu)控制8.8使用組件、行為與模板課堂實(shí)踐疑難解析課外拓展第8章動(dòng)作腳本ActionScript 8.1關(guān)于動(dòng)作腳本

8.1.1動(dòng)作腳本的概念

所謂動(dòng)作腳本,是Flash環(huán)境下的一種面向?qū)ο蟮木幊陶Z言,即ActionScript語言,中文直譯為“動(dòng)作腳本”,目前的版本是ActionScript2.0。

ActionScript具有和通用的JavaScript相似的結(jié)構(gòu),采用面向?qū)ο缶幊痰乃枷?,利用事件?duì)程序進(jìn)行驅(qū)動(dòng),以動(dòng)畫中的關(guān)鍵幀、按鈕或影片剪輯實(shí)例作為編程對(duì)象來對(duì)ActionScript進(jìn)行定義和編寫。例如,用鼠標(biāo)單擊按鈕控制動(dòng)畫的暫停,此時(shí)按鈕被作為編程對(duì)象,在按鈕上添加了控制動(dòng)畫暫停的腳本程序,驅(qū)動(dòng)事件就是用鼠標(biāo)單擊按鈕。當(dāng)用鼠標(biāo)單擊按鈕這個(gè)事件發(fā)生時(shí),就會(huì)執(zhí)行按鈕上的腳本程序,腳本程序執(zhí)行的結(jié)果使得動(dòng)畫的播放暫停。8.1.2動(dòng)作腳本的特點(diǎn)

與任何計(jì)算機(jī)編程語言一樣,ActionScript遵循一套語法規(guī)則,保留了關(guān)鍵字,提供了運(yùn)算符,并且允許使用變量存儲(chǔ)數(shù)據(jù)和獲取信息。另外,動(dòng)作腳本包含很多不同用途的內(nèi)置對(duì)象和函數(shù),并且允許用戶創(chuàng)建自定義的對(duì)象和函數(shù)。

在Flash文檔中編寫腳本時(shí),只允許在3個(gè)地方添加動(dòng)作腳本:關(guān)鍵幀、影片剪輯實(shí)例、按鈕實(shí)例,只有這三者才是Flash的編程對(duì)象。動(dòng)作腳本的執(zhí)行必須要有驅(qū)動(dòng)事件。所謂驅(qū)動(dòng)事件,就是指播放SWF文件時(shí)發(fā)生的事情。當(dāng)驅(qū)動(dòng)事件發(fā)生時(shí),動(dòng)作腳本才會(huì)被執(zhí)行。關(guān)鍵幀、影片剪輯實(shí)例和按鈕實(shí)例這三種編程對(duì)象的驅(qū)動(dòng)事件各不相同。在關(guān)鍵幀上添加的動(dòng)作腳本能且只能被一種事件驅(qū)動(dòng),這就是“進(jìn)入幀”事件,即當(dāng)播放頭進(jìn)入該幀,該幀被播放時(shí)幀上的腳本才會(huì)被執(zhí)行;在按鈕實(shí)例和影片剪輯實(shí)例上添加的動(dòng)作腳本,它們的執(zhí)行要依靠驅(qū)動(dòng)事件發(fā)生,例如,移動(dòng)鼠標(biāo)、鼠標(biāo)在按鈕上單擊、加載影片剪輯、卸載影片剪輯等。(按鈕實(shí)例和影片剪輯實(shí)例的驅(qū)動(dòng)事件詳見8.2.2節(jié)。) 8.2動(dòng)作面板

8.2.1動(dòng)作面板的組成

在Flash中使用“動(dòng)作”面板,可以為關(guān)鍵幀、影片剪輯實(shí)例和按鈕實(shí)例添加或編輯動(dòng)作腳本。執(zhí)行【窗口】→【動(dòng)作】命令或按F9功能鍵,展開“動(dòng)作”面板,如圖8-1所示。圖8-1“動(dòng)作”面板圖8-2“查找和替換”對(duì)話框8.2.2動(dòng)作腳本的添加方法

1.在關(guān)鍵幀上添加動(dòng)作腳本

在關(guān)鍵幀上添加動(dòng)作非常簡(jiǎn)單,首先選擇要添加動(dòng)作的關(guān)鍵幀,然后在“腳本窗格”中添加動(dòng)作即可。

2.在按鈕實(shí)例上添加動(dòng)作腳本

在按鈕上添加動(dòng)作,首先要在按鈕上添加on()函數(shù)。on()是鼠標(biāo)事件處理函數(shù),用于處理鼠標(biāo)事件。on()函數(shù)的語法格式為:

on(鼠標(biāo)事件){

響應(yīng)鼠標(biāo)事件要執(zhí)行的程序段

}

這段腳本的意思是,當(dāng)鼠標(biāo)事件發(fā)生時(shí),就執(zhí)行大括號(hào)內(nèi)的腳本;如果鼠標(biāo)事件沒有發(fā)生,那么大括號(hào)內(nèi)的腳本永遠(yuǎn)不會(huì)被執(zhí)行。在Flash中,鼠標(biāo)事件,即按鈕實(shí)例的驅(qū)動(dòng)事件主要有以下幾種。

①press:在按鈕上單擊鼠標(biāo)左鍵。

②release:在按鈕上單擊鼠標(biāo)左鍵并釋放。

③releaseOutside:在按鈕上按下鼠標(biāo)左鍵,不松手將鼠標(biāo)移到按鈕之外,此時(shí)再釋放鼠標(biāo)。

④rollOver:鼠標(biāo)指針滑入按鈕。

⑤rollOut:鼠標(biāo)指針從按鈕上滑出。

⑥dragOver:按住鼠標(biāo)左鍵不松手,接著將鼠標(biāo)指針滑入按鈕。

⑦dragOut:按住鼠標(biāo)左鍵不松手,接著將鼠標(biāo)指針滑出按鈕。

⑧keyPress"<key>":按下鍵盤上指定的按鍵。在按鈕上添加腳本的具體操作步驟是:

(1)選中要添加動(dòng)作的按鈕。

(2)打開“動(dòng)作”面板,單擊“添加動(dòng)作”按鈕,選擇【全局函數(shù)】→【影片剪輯控制】→【on】函數(shù),此時(shí)彈出on()函數(shù)的參數(shù)設(shè)置菜單,用于選擇鼠標(biāo)事件,如圖8-3所示,雙擊參數(shù)提示菜單中的某一個(gè)鼠標(biāo)事件即可。圖8-3添加on()函數(shù)

(3)把鼠標(biāo)指針插入到大括號(hào){}之間,添加相應(yīng)鼠標(biāo)事件要執(zhí)行的動(dòng)作腳本。

注意:一般來說,腳本添加完以后,最好單擊“自動(dòng)套用格式”按鈕,把“腳本窗格”中的腳本格式轉(zhuǎn)換成規(guī)范的書寫格式,便于程序代碼的閱讀理解。如果程序代碼中有語法錯(cuò)誤,則會(huì)彈出一個(gè)提示警告窗口,如圖8-4所示。(動(dòng)畫的調(diào)試詳見9.1節(jié)。)圖8-4語法錯(cuò)誤警告窗口

3.在影片剪輯實(shí)例上添加動(dòng)作腳本

在影片剪輯實(shí)例上添加腳本的方法與按鈕類似,不同之處在于影片剪輯實(shí)例使用的事件處理函數(shù)是onClipEvent()。onClipEvent()函數(shù)的語法格式為:

onClipEvent(系統(tǒng)事件){

響應(yīng)系統(tǒng)事件要執(zhí)行的程序段

}在Flash中,系統(tǒng)事件,即影片剪輯實(shí)例的驅(qū)動(dòng)事件,主要有以下幾種。

①load:載入影片剪輯時(shí)啟動(dòng)大括號(hào)內(nèi)的動(dòng)作。

②unload:在時(shí)間軸中刪除影片剪輯實(shí)例時(shí)啟動(dòng)動(dòng)作。

③enterFrame:只要影片剪輯在播放,就不斷地啟動(dòng)動(dòng)作。

④mouseMove:每次移動(dòng)鼠標(biāo)時(shí)啟動(dòng)動(dòng)作。

⑤mouseDown:當(dāng)按下鼠標(biāo)左鍵時(shí)啟動(dòng)動(dòng)作。

⑥mouseUp:當(dāng)釋放鼠標(biāo)左鍵時(shí)啟動(dòng)動(dòng)作。

⑦keyDown:當(dāng)按下某個(gè)鍵時(shí)啟動(dòng)動(dòng)作。

⑧keyUp:當(dāng)釋放某個(gè)鍵時(shí)啟動(dòng)動(dòng)作。

⑨data:在使用loadVariables()或loadMovie()動(dòng)作時(shí)接收到數(shù)據(jù)就啟動(dòng)動(dòng)作。 8.3動(dòng)作腳本應(yīng)用體驗(yàn)

下面通過一個(gè)動(dòng)作腳本案例,初步體驗(yàn)動(dòng)作腳本的功能及使用方法。

案例8-1:ILOVEYOU

案例展示

打開隨書光盤中“第8章/案例1”文件夾下的“ILOVEYOU.swf”文件,觀看動(dòng)畫效果。動(dòng)畫剛進(jìn)場(chǎng)時(shí)是靜止的,單擊按鈕,動(dòng)畫才開始播放,出現(xiàn)文字和愛心的動(dòng)畫效果,如圖8-5所示。圖8-5ILOVEYOU

案例分析

打開該文件夾下的“ILOVEYOU.fla”源文件,在時(shí)間軸上可以看到按鈕放在“button”圖層,文字動(dòng)畫直接在場(chǎng)景中使用遮罩技術(shù)完成,愛心動(dòng)畫引用一個(gè)名為“heartmc”的影片剪輯,放在“ball”圖層,動(dòng)畫在時(shí)間軸上的布局如圖8-6所示。圖8-6時(shí)間軸布局打開“動(dòng)作”面板,展開“腳本導(dǎo)航器”窗格,如圖8-7所示。圖8-7“動(dòng)作”面板之“腳本導(dǎo)航器”在“腳本導(dǎo)航器”中可以看到,該文檔給影片剪輯“heartmc”實(shí)例命名為“ball”,在三個(gè)地方添加了動(dòng)作腳本。選擇添加腳本的項(xiàng)目,查看腳本代碼。

1)在button圖層第1幀上添加的腳本

stop();

當(dāng)播放頭進(jìn)入第1幀時(shí),就會(huì)執(zhí)行其上的腳本stop()。stop()腳本的功能就是停止時(shí)間軸的播放,動(dòng)畫停止在第1幀,所以在主場(chǎng)景中直接完成的文字動(dòng)畫剛開始是靜止的。

2)在影片剪輯“heartmc”時(shí)間軸的第1幀上添加的腳本

stop();

當(dāng)影片剪輯時(shí)間軸上的播放頭進(jìn)入第1幀時(shí),stop()使影片剪輯停止在第1幀,所以影片剪輯剛進(jìn)場(chǎng)時(shí)也是靜止的。

說明:由于影片剪輯有自身獨(dú)立的時(shí)間軸,影片剪輯的播放不受主場(chǎng)景時(shí)間軸的控制,所以在主場(chǎng)景時(shí)間軸上添加的動(dòng)作腳本stop(),停止的是主場(chǎng)景時(shí)間軸的播放,影片剪輯不受影響。如果要停止影片剪輯的播放,必須在影片剪輯自身的時(shí)間軸上添加腳本stop()。同理,腳本play()可以控制動(dòng)畫的播放,其使用方法與stop()相同。

3)在按鈕button上添加的腳本

on(release){

play();

ball.play();

}

如果使用按鈕來控制動(dòng)畫的交互,首先必須為其添加on()函數(shù)。當(dāng)在按鈕上單擊鼠標(biāo)并釋放時(shí),就會(huì)執(zhí)行大括號(hào)內(nèi)的動(dòng)作。play()使主場(chǎng)景中停止的動(dòng)畫從當(dāng)前位置(即第1幀)繼續(xù)播放;ball.play()使影片剪輯實(shí)例ball從當(dāng)前位置(即第1幀)繼續(xù)播放。因此,單擊按鈕并釋放鼠標(biāo)后,可看到文字和愛心的動(dòng)畫效果。 8.4動(dòng)作腳本編程基礎(chǔ)

8.4.1動(dòng)作腳本基本語法

與任何語言一樣,動(dòng)作腳本具有一定的語法規(guī)則,用戶必須遵守這些語法規(guī)則才能創(chuàng)建可正確編譯和運(yùn)行的腳本。

1.區(qū)分大小寫

在Flash中,對(duì)于變量和常數(shù)是嚴(yán)格區(qū)分大小寫的,區(qū)分大小寫是減少程序人為和輸入錯(cuò)誤的有效手段,也是Flash的趨勢(shì)。當(dāng)遵循了Flash推薦的大小寫時(shí),在默認(rèn)情況下,這些屬性和方法名會(huì)以藍(lán)色高亮顯示。用戶應(yīng)該養(yǎng)成按Flash推薦的大小寫來使用函數(shù)、屬性和方法等。例如,gotoAndPlay()是Flash推薦的寫法,而gotoandplay()則不是。

2.點(diǎn)語法

點(diǎn)語法(.)是動(dòng)作腳本中非常重要的語法,它是用來引用對(duì)象的屬性和方法的。點(diǎn)語法典型的使用形式是以對(duì)象名稱或?qū)嵗Q開頭,后面跟著一個(gè)點(diǎn),最后是一個(gè)屬性或方法名。例如,starMC._alpha,表示影片剪輯實(shí)例starMC的_alpha屬性。另外,點(diǎn)語法還用于標(biāo)識(shí)對(duì)象的目標(biāo)路徑。例如,主場(chǎng)景時(shí)間軸中有影片剪輯實(shí)例ballx1,ballx1影片剪輯元件又引用ballx2影片剪輯實(shí)例,則當(dāng)要在主場(chǎng)景時(shí)間軸中引用ballx2的X坐標(biāo)時(shí),可以使用表達(dá)式ballx1.ballx2._x。點(diǎn)語法還使用兩個(gè)特殊的別名:_root和?_parent。

_root是指主時(shí)間軸,可以使用它來表示一個(gè)絕對(duì)目標(biāo)路徑。例如,上例的表達(dá)式可以表示成絕對(duì)路徑的形式?_root.ballx1.ballx2._x。

_parent引用嵌套當(dāng)前影片剪輯的影片剪輯,即當(dāng)前影片剪輯的上一級(jí),可以使用它來表示一個(gè)相對(duì)路徑。例如,上例中在ballx2中有腳本?_parent.stop(?),這里的?_parent是指ballx2實(shí)例的上一級(jí),即ballx1實(shí)例,所以腳本?_parent.stop()表示停止ballx1實(shí)例的播放。

3.大括號(hào)

如果某些腳本需要作為一個(gè)整體存在來執(zhí)行,為了明確表示這些腳本要作為一個(gè)“腳本塊”來使用,需要把這些腳本用一對(duì)大括號(hào){}括起來。

例如,按鈕事件處理函數(shù)的使用:

on(release){

setProperty("_root.mypao",_alpha,"50");

play();

}

當(dāng)單擊按鈕并釋放鼠標(biāo)時(shí),首先執(zhí)行setProperty("_root.mypao",_alpha,"50")腳本,然后再執(zhí)行play()。大括號(hào)中的這兩個(gè)腳本作為一個(gè)整體來執(zhí)行,絕對(duì)不會(huì)只執(zhí)行其中的某一個(gè)腳本。

4.小括號(hào)

小括號(hào)()用于函數(shù)的定義和調(diào)用。在定義和調(diào)用函數(shù)時(shí),函數(shù)的參數(shù)必須用一對(duì)小括號(hào)括起來。

例如,函數(shù)定義如下:

functioncirarea(r:Number){

s=Math.PI*r*r;

returns;

}

函數(shù)名cirarea后面是函數(shù)的參數(shù)r的類型說明,必須使用小括號(hào)括起來定義。

5.分號(hào)

分號(hào)表示一條語句的結(jié)束。例如:

varx=100;

vary=1;

如果不使用分號(hào),F(xiàn)lash也能正確地編譯腳本,但用戶應(yīng)該從一開始就要養(yǎng)成良好的編程習(xí)慣。

6.關(guān)鍵字

動(dòng)作腳本保留一些單詞用于該程序語言中的特定用途,因此不能將它們用作標(biāo)識(shí)符,例如內(nèi)建函數(shù)、屬性名和方法名等。

7.常數(shù)

常數(shù)是其值永遠(yuǎn)不變的一些常量。在Flash中,有若干種形式的常數(shù),有的常數(shù)是以類的屬性的形式存在的,例如,圓周率的值就是一個(gè)常數(shù),可以使用Math.PI來表示,PI是內(nèi)建類Math的一個(gè)屬性;而有的常數(shù)是以布爾值的形式存在的,例如false和true。

8.注釋

在編輯較復(fù)雜的動(dòng)作腳本時(shí),建議在編程的過程中使用注釋,注釋有助于腳本內(nèi)容的閱讀和理解。注釋可以單獨(dú)占一行,也可以寫在代碼行的后面。注釋以雙斜杠(//)開頭。

例如:

//聲明一個(gè)變量x,用作X坐標(biāo)值的偏移量

varx=1;

varn=20; //給變量n賦初值,作循環(huán)計(jì)數(shù)器使用除了可以使用//來添加單行注釋外,還可以創(chuàng)建“注釋塊”的注釋。注釋塊以/*開始,以*/結(jié)束,“注釋塊”中的所有內(nèi)容都將被當(dāng)做Flash的注釋。例如:

/*

setProperty("snow",_x,random(500));

setProperty("snow",_y,random(400));

setProperty("snow",_rotation,random(360));

*/

//開始復(fù)制主場(chǎng)景中的“snow”實(shí)例,并把復(fù)制出來的實(shí)例的名稱動(dòng)態(tài)命名為snow加上i,

//并把生成的實(shí)例放在深度為i的層上

duplicateMovieClip("snow","snow"+i,i);8.4.2數(shù)據(jù)類型

1.字符串(String)

字符串是由字母、數(shù)字或標(biāo)點(diǎn)符號(hào)組合在一起的字符序列。在動(dòng)作腳本中輸入字符串時(shí)必須將其放在單引號(hào)或雙引號(hào)之間。字符串被當(dāng)作字符而不是變量進(jìn)行處理。例如:

name="彥青";

在連接兩個(gè)字符串時(shí),可以使用“+”運(yùn)算符進(jìn)行連接,例如:

say="Hello,"+name+"!";

執(zhí)行這兩條腳本命令后,變量say的內(nèi)容就是字符串“Hello,彥青!”。如果字符串中本身就包含有雙引號(hào),為了不使雙引號(hào)的配對(duì)發(fā)生錯(cuò)誤,需要在單純字符雙引號(hào)前面添加“\”,這稱為“轉(zhuǎn)義”。例如:

text="他說\"OK!\"";

在上面的字符串中,開始和結(jié)束的雙引號(hào)用來說明這是一個(gè)字符串?dāng)?shù)據(jù)類型,反斜杠字符(\)后面的雙引號(hào)是字符串中的內(nèi)容。

一般情況下,單引號(hào)與雙引號(hào)是通用的,通過把單引號(hào)和雙引號(hào)結(jié)合起來使用,可以避免使用“轉(zhuǎn)義”字符。例如,上面的字符串也可以這樣表示:

text='他說"OK!"';

2.?dāng)?shù)字(Number)

數(shù)字?jǐn)?shù)據(jù)類型是雙精度浮點(diǎn)數(shù)。它主要使用加(+)、減(-)、乘(*)、除(/)、取模(%)、遞增(++)和遞減(--)等算術(shù)運(yùn)算符來處理數(shù)據(jù),也可以使用內(nèi)置的Math和Number類的方法來處理數(shù)據(jù)。例如:數(shù)字100的平方根可以使用Math類表示為Math.Sqrt(100)。

3.布爾值(Boolean)

布爾值也可稱為邏輯值,它的運(yùn)算結(jié)果非常簡(jiǎn)單,只有true(真)和false(假)兩種結(jié)果。布爾數(shù)據(jù)類型的變量常常被用作控制腳本執(zhí)行的開關(guān)。例如:

if(n>=50){

stop();

}

說明:在Flash中,數(shù)據(jù)0的布爾值被認(rèn)為是false,所有非零數(shù)據(jù)的布爾值被認(rèn)為是true。

4.對(duì)象

對(duì)象是屬性的集合。每個(gè)屬性都有名稱和值。屬性值可以是任何數(shù)據(jù)類型,甚至可以是對(duì)象數(shù)據(jù)類型。這樣就可以把一個(gè)對(duì)象嵌套在另一個(gè)對(duì)象之中。要指定對(duì)象和它們的屬性,可以使用點(diǎn)(.)語法。例如,student是class的屬性,sex是student的屬性,定義一個(gè)“男”同學(xué)可以表示為:

class.student.sex="男";

5.影片剪輯

影片剪輯是惟一引用圖形元素的數(shù)據(jù)類型。影片剪輯MovieClip數(shù)據(jù)類型允許使用MovieClip類的方法控制影片剪輯實(shí)例。例如,場(chǎng)景中影片剪輯實(shí)例“ball”從庫中取得一個(gè)鏈接名為dh的影片剪輯元件,生成名為“ballson”的影片剪輯實(shí)例,并將生成的影片剪輯實(shí)例附加到實(shí)例“ball”中,可以使用影片剪輯的方法attachMovie表示為:

ball.attachMovie("dh","ballson",n);

6.空值(null)

null表示空值數(shù)據(jù)類型,此值意味著“沒有值”,即缺少數(shù)據(jù)。null值可以用在各種情況中,例如,指示變量尚未接收到值,指示變量不再包含值;作為函數(shù)的返回值,表示函數(shù)沒有返回的值;作為函數(shù)的參數(shù),表示省略了一個(gè)參數(shù)。

7.未定義類型(undefined)

未定義的數(shù)據(jù)類型有一個(gè)值,即undefined,它用于尚未分配值的變量。8.4.3變量

1.命名變量

變量名是一個(gè)符合特定規(guī)則要求的字符串,命名變量必須遵守兩個(gè)原則:

第一,變量名遵循標(biāo)識(shí)符的命名規(guī)則,即第一個(gè)字符必須是字母、下劃線(?_?)或美元符號(hào)($),其后的字符必須是字母、數(shù)字、下劃線或美元符號(hào),中間不能包含空格;

第二,變量名不能是關(guān)鍵字或動(dòng)作腳本文本。例如play、if等不能再用作變量名使用。

注意:用戶最好不要將動(dòng)作腳本語言中已經(jīng)使用的任何元素用作變量名稱,這樣做很可能會(huì)導(dǎo)致語法錯(cuò)誤或意外的結(jié)果。

2.聲明變量及變量賦值

當(dāng)首次定義變量時(shí),最好為該變量指定一個(gè)值,這就是變量的初始化。初始化變量有助于在播放SWF文件時(shí)跟蹤和比較變量的值。變量的初始化通常在動(dòng)畫文件的第1幀完成??梢允褂孟旅娴膬煞N方式來聲明變量和為變量賦值。

1)自動(dòng)數(shù)據(jù)類型指定

在Flash中,不必將變量明確地定義為字符串、數(shù)字或其他數(shù)據(jù)類型。在給變量賦值時(shí)Flash可以自動(dòng)指定其數(shù)據(jù)類型。最普通最簡(jiǎn)單的變量賦值形式如下:

variableName=newValue;這個(gè)語句表示名為variableName的變量被賦予了值newValue。例如,給變量a1賦值100,可以表示如下:

a1=100;

變量賦值時(shí),F(xiàn)lash首先檢測(cè)運(yùn)算符右側(cè)的元素,然后根據(jù)檢測(cè)元素的數(shù)據(jù)類型自動(dòng)確定變量a1的數(shù)據(jù)類型為數(shù)字類型,然后把數(shù)值100賦給變量a1。如果后面還有對(duì)變量a1的賦值,賦值操作可以更改a1的數(shù)據(jù)類型。例如:

a1="price";

此時(shí),a1的數(shù)據(jù)類型被更改為字符串。如果以variableName=newValue這種形式為變量賦值時(shí),F(xiàn)lash會(huì)根據(jù)賦值數(shù)據(jù)的類型自動(dòng)為變量指定相應(yīng)的數(shù)據(jù)類型,這種情況下的變量可以保存任何類型的數(shù)據(jù)。

另外,動(dòng)作腳本還會(huì)在表達(dá)式需要時(shí)自動(dòng)轉(zhuǎn)換數(shù)據(jù)類型。例如:

page="Nextpageis"+20;

執(zhí)行這個(gè)語句,F(xiàn)lash首先將數(shù)字20轉(zhuǎn)換為字符串“20”,并將它添加到第一個(gè)字符串的結(jié)尾,變量page中保存的是字符串“Nextpageis20”。

2)嚴(yán)格數(shù)據(jù)類型指定

使用自動(dòng)數(shù)據(jù)類型指定變量雖然很方便,變量可以保存任何數(shù)據(jù)類型,但方便的同時(shí)也增大了出錯(cuò)的風(fēng)險(xiǎn)。比如某個(gè)變量只能存放數(shù)字,無意中把一個(gè)字符串保存在變量中,則在以后使用該變量參與的計(jì)算中,可能會(huì)導(dǎo)致意想不到的錯(cuò)誤。

為了避免這種錯(cuò)誤的發(fā)生,ActionScript2.0引入了變量嚴(yán)格指定數(shù)據(jù)類型的概念。在給變量賦值時(shí)就明確指定它能且只能保存某種特定的數(shù)據(jù)類型,其聲明形式如下:

varvariableName:DataType=newValue;

上面的變量聲明和賦值也可以分成兩步來完成,代碼如下:

varvariableName:DataType;

variableName=newValue;在這里,var是一個(gè)語句,變量名variableName后面跟著一個(gè)冒號(hào),冒號(hào)后面是為變量指定的數(shù)據(jù)類型DataType。例如:

varold:Number=25;

聲明變量old的數(shù)據(jù)類型是數(shù)字,并給變量賦值25。使用嚴(yán)格數(shù)據(jù)類型指定有助于確保不會(huì)因?yàn)槭韬龆鵀樽兞恐付ㄥe(cuò)誤的值。使用嚴(yán)格數(shù)據(jù)類型指定后,F(xiàn)lash在編譯時(shí)會(huì)檢查類型指定是否匹配,錯(cuò)誤時(shí)會(huì)給出“類型不匹配”的提示。除了為變量嚴(yán)格指定數(shù)據(jù)類型外,還可以為函數(shù)中的參數(shù)嚴(yán)格指定數(shù)據(jù)類型。例如:

functionsquare(x:Number):Number{

varsquared=x*x;

returnsquared;

}

提示:在為函數(shù)參數(shù)指定數(shù)據(jù)類型時(shí),不使用var語句。

3.變量的作用域

所謂變量的作用域,是指變量在其中已知并且可以引用的區(qū)域。變量的作用域有三種:局部變量(也稱本地變量)、時(shí)間軸變量和全局變量。

1)局部變量

局部變量只在聲明它們的函數(shù)體內(nèi)(兩個(gè)大括號(hào){}之間)可用,它是作用范圍最小的變量。要聲明局部變量,必須使用var語句。局部變量的使用范圍只限于函數(shù)體內(nèi)的腳本,它會(huì)在該腳本代碼塊結(jié)束時(shí)到期。正是這種作用域局限的特征,使得局部變量成為在函數(shù)內(nèi)用作計(jì)數(shù)器的最好選擇,因?yàn)樵谝粋€(gè)函數(shù)內(nèi)聲明的計(jì)數(shù)器i與在另一個(gè)函數(shù)內(nèi)聲明的i沒有任何關(guān)系。

例如,函數(shù)Sum的功能是計(jì)算變量x從1加到x的累加和,函數(shù)內(nèi)可以設(shè)置一個(gè)局部變量i用于控制累加的次數(shù),s用來存放累加和,局部變量i和s的作用范圍僅限于函數(shù)體中。程序代碼如下:

functionSum(x:Number):Number{

vari:Number;

vars:Number;

s=0;

for(i=0;i<=x;i++){

s=s+i;

}

returns;

}局部變量可以有效地防止名稱沖突,名稱沖突可能會(huì)導(dǎo)致動(dòng)作腳本出現(xiàn)錯(cuò)誤。例如,如果使用name作為局部變量,則可以使用它在某個(gè)函數(shù)中存儲(chǔ)員工名稱,而在另一個(gè)函數(shù)中存儲(chǔ)實(shí)例名稱,因?yàn)檫@個(gè)變量是在不同的范圍中運(yùn)行的,所以它們不會(huì)有沖突。

在函數(shù)中使用局部變量是一個(gè)很好的習(xí)慣,這樣該函數(shù)可以充當(dāng)獨(dú)立的代碼。局部變量只有在它自己的代碼塊中才可更改。如果函數(shù)中的表達(dá)式使用全局變量,則在該函數(shù)以外的其他地方也可以更改它的值,這樣也更改了該函數(shù)的運(yùn)算結(jié)果。

2)時(shí)間軸變量

盡管局部變量很有用,但很多時(shí)候希望變量在整個(gè)時(shí)間軸內(nèi)都能被引用。時(shí)間軸變量可用于該時(shí)間軸上的任何腳本,這樣在不同幀中傳遞值會(huì)變得很方便。

例如,在時(shí)間軸的第1幀中包含代碼:

varn:Number=1;

vart:Number=100;

第2幀中包含代碼:

n=n+1;第3幀中包含代碼:

if(n<=t){

ball.play();

}else{

stop();

}

在第1幀中定義的變量n和t就是時(shí)間軸變量,在第2幀、第3幀上被再次引用。時(shí)間軸變量n和t可以在動(dòng)畫的整個(gè)時(shí)間軸上被引用。

3)全局變量

如果希望能在整個(gè)Flash文檔的不同時(shí)間軸之間傳遞值,也就是在不同的時(shí)間軸中引用同一個(gè)變量,就需要使用全局變量。要定義一個(gè)全局變量,需要使用?_global標(biāo)識(shí)符。定義全局變量時(shí),不能使用var語句。例如,定義一個(gè)全局變量timer,代碼如下:

_global.timer=120;

如果在場(chǎng)景時(shí)間軸中定義了全局變量timer,則以后可以在文檔中任意的影片剪輯或按鈕時(shí)間軸中使用timer,它們引用的都是同一個(gè)timer變量。

提示:局部變量和時(shí)間軸變量可以使用var語句,嚴(yán)格指定數(shù)據(jù)類型;全局變量不能使用var語句,因此不能嚴(yán)格指定數(shù)據(jù)類型。

4)變量沖突

假如在某個(gè)函數(shù)中定義了一個(gè)局部變量,當(dāng)該局部變量與全局變量或時(shí)間軸變量同名時(shí),到底是哪一個(gè)變量的值會(huì)被引用呢?在Flash中,對(duì)于同名而作用域不同的變量而言,采用的都是“就近”原則。

例如,定義一個(gè)名為Gvar的全局變量,在場(chǎng)景的時(shí)間軸上又定義了一個(gè)同名的時(shí)間軸變量,在時(shí)間軸上的某個(gè)函數(shù)中還定義了一個(gè)同名的局部變量,當(dāng)在該函數(shù)中引用Gvar時(shí),引用的是局部變量;而當(dāng)在場(chǎng)景時(shí)間軸中引用Gvar時(shí),引用的是時(shí)間軸變量;當(dāng)在其它時(shí)間軸中引用Gvar時(shí),引用的是全局變量。如果要在時(shí)間軸中引用與時(shí)間軸變量同名的全局變量Gvar時(shí),只要在該變量的前面添加?_global即可,引用方式為?_global.Gvar;如果在場(chǎng)景時(shí)間軸上的函數(shù)中引用與局部變量同名的時(shí)間軸變量,需要在變量名前添加目標(biāo)路徑,引用方式為?_root.Gvar;如果在B時(shí)間軸上引用A時(shí)間軸上的與全局變量同名的時(shí)間軸變量,需要在變量名前添加該變量所在的時(shí)間軸的目標(biāo)路徑。8.4.4表達(dá)式與運(yùn)算符

表達(dá)式與運(yùn)算符是在程序開發(fā)中經(jīng)常用到的術(shù)語。

1.表達(dá)式

表達(dá)式是由運(yùn)算符和操作數(shù)組成的式子,其目的是用來說明一個(gè)計(jì)算的過程。表達(dá)式是Flash可以計(jì)算并返回值的任何語句,它是程序中常見的組成單位。執(zhí)行運(yùn)算的元素被稱為操作數(shù),操作數(shù)最常見的形式是常量、變量或函數(shù)。根據(jù)表達(dá)式的計(jì)算結(jié)果,表達(dá)式分為邏輯表達(dá)式、字符串表達(dá)式和數(shù)值表達(dá)式三種類型。

1)邏輯表達(dá)式

邏輯表達(dá)式就是布爾變量或者常量通過與、或、非操作連接起來的表達(dá)式,其計(jì)算結(jié)果為布爾值(true或false),也稱為邏輯值。例如:

if(sab&&test){

stop();

}

在這里,sab&&test是一個(gè)邏輯表達(dá)式,表示變量sab和test做邏輯與(&&)運(yùn)算。一般來說,邏輯表達(dá)式出現(xiàn)在條件判斷語句中,用來控制程序的執(zhí)行順序。表達(dá)式還可以作為一個(gè)成員再與其它的邏輯表達(dá)式或者變量組成更加復(fù)雜的邏輯表達(dá)式。例如:

if((sab&&test)&&(name=="DOG")){

play();

}

在這里,由兩組小的邏輯表達(dá)式再組成一個(gè)更大的表達(dá)式,從而完成更加復(fù)雜的功能。

2)字符串表達(dá)式

字符串表達(dá)式就是一組字符串使用連接運(yùn)算符(+)連接的表達(dá)式。例如:

"mynameis"+"rose"

連接運(yùn)算得到字符串“mynameisrose”。

3)數(shù)值表達(dá)式

數(shù)值表達(dá)式就是數(shù)值、變量或函數(shù)通過數(shù)值操作符連接起來的式子。例如:

(n+1)*sqrt(x)

2.運(yùn)算符

運(yùn)算符是指組合、比較或修改表達(dá)式值的字符,運(yùn)算符指明對(duì)操作數(shù)所進(jìn)行的運(yùn)算。根據(jù)運(yùn)算符的功能來劃分,運(yùn)算符包括算術(shù)運(yùn)算符、比較運(yùn)算符、字符串運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符和位運(yùn)算符。表達(dá)式根據(jù)某些約定、求值次序、運(yùn)算符的優(yōu)先級(jí)和結(jié)合律規(guī)則來進(jìn)行計(jì)算。

1)運(yùn)算符的優(yōu)先級(jí)和結(jié)合律

當(dāng)在同一語句中使用兩個(gè)或多個(gè)運(yùn)算符時(shí),一些運(yùn)算符會(huì)優(yōu)先于其它的運(yùn)算符。動(dòng)作腳本按照一個(gè)精確的層次來確定首先執(zhí)行哪些運(yùn)算符。例如,乘法總是先于加法執(zhí)行,括號(hào)中的項(xiàng)目?jī)?yōu)先于乘法執(zhí)行。如果沒有括號(hào),動(dòng)作腳本會(huì)按運(yùn)算符的優(yōu)先級(jí)來確定運(yùn)算次序。例如:

total=2+4*3;

首先做優(yōu)先級(jí)別高的乘法運(yùn)算,再做加法運(yùn)算,結(jié)果為14。

如果在加法運(yùn)算中使用了括號(hào),動(dòng)作腳本會(huì)首先執(zhí)行加法運(yùn)算。例如:

total=(2+4)*3;

結(jié)果為18。當(dāng)兩個(gè)或更多個(gè)運(yùn)算符優(yōu)先級(jí)相同時(shí),它們的結(jié)合律會(huì)確定它們的執(zhí)行順序。結(jié)合律可以是從左到右或者從右到左。例如,乘法運(yùn)算符具有從左到右的結(jié)合律,因此,下面兩個(gè)語句是等效的:

total=2*3*4;

total=(2*3)*4;

說明:運(yùn)算符的優(yōu)先級(jí)及結(jié)合律可查閱Flash的幫助系統(tǒng)。

2)算術(shù)運(yùn)算符

算術(shù)運(yùn)算符可以執(zhí)行加法、減法、乘法、除法和求模等算術(shù)運(yùn)算。表8-1中列出了動(dòng)作腳本的算術(shù)運(yùn)算符。

3)比較運(yùn)算符

比較運(yùn)算符用于比較表達(dá)式的值,然后返回一個(gè)布爾值(true或false)。比較運(yùn)算符需要兩個(gè)操作數(shù),其構(gòu)成表達(dá)式的形式是:

第一個(gè)操作數(shù)運(yùn)算符第二個(gè)操作數(shù)用比較運(yùn)算符構(gòu)成的表達(dá)式通常在選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)程序中用作條件判斷。例如:

if(score>100){

loadMovieNum("winner.swf",5);

}else{

loadMovieNum("loser.swf",5);

}比較運(yùn)算符不僅可以用于數(shù)字的比較,也可以用于字符串的比較。當(dāng)把比較運(yùn)算符用于字符串的比較時(shí),運(yùn)算符會(huì)根據(jù)兩個(gè)字符串中左起相對(duì)應(yīng)的字符的ASCII碼值的大小進(jìn)行比較,并返回結(jié)果true或false。如果兩個(gè)字符串的第一個(gè)字符的ASCII碼值相等,則會(huì)繼續(xù)比較第二個(gè)字符,以此類推,直到比較出結(jié)果。例如:

"abc">"aba"

比較第一個(gè)字符和第二個(gè)字符都相等,繼續(xù)比較第三個(gè)字符,“c”大于“a”,所以結(jié)果為true。

4)字符串運(yùn)算符

當(dāng)兩個(gè)字符串操作數(shù)使用“+”運(yùn)算符時(shí),F(xiàn)lash會(huì)把兩個(gè)字符串連接起來成為一個(gè)字符串。例如:

"Congratulations,"+"Donna!"

結(jié)果是字符串"Congratulations,Donna!"。如果兩個(gè)操作數(shù)中有一個(gè)是字符串,另一個(gè)是數(shù)字,則Flash會(huì)把數(shù)字操作數(shù)轉(zhuǎn)換成字符串,表達(dá)式完成的是字符串運(yùn)算。

5)邏輯運(yùn)算符

邏輯運(yùn)算符對(duì)布爾值(true和false)進(jìn)行運(yùn)算,然后返回一個(gè)布爾值。邏輯運(yùn)算符“與”和“或”使用兩個(gè)操作數(shù),而“非”運(yùn)算使用一個(gè)操作數(shù)。表8-3中列出了動(dòng)作腳本的邏輯運(yùn)算符。邏輯運(yùn)算符通常與比較運(yùn)算符結(jié)合使用,作為程序代碼是否被執(zhí)行的條件。例如,在下面的腳本中,如果i>10和?_framesloaded>50兩個(gè)表達(dá)式都為true,則將執(zhí)行play()動(dòng)作:

if(i>10&&_framesloaded>50){

play();

}

6)賦值運(yùn)算符

在動(dòng)作腳本中,使用賦值運(yùn)算符來為變量賦值。賦值運(yùn)算符中最根本的運(yùn)算符是賦值運(yùn)算(=),除了賦值運(yùn)算(=)外,通過將賦值運(yùn)算(=)與其他的算術(shù)、邏輯和位運(yùn)算符結(jié)合使用,可以構(gòu)成“復(fù)合賦值運(yùn)算”的賦值運(yùn)算符。表8-4中列出了動(dòng)作腳本的賦值運(yùn)算符。在使用賦值運(yùn)算符時(shí),要注意賦值運(yùn)算符的左側(cè)必須是變量或?qū)傩?。例如,下面的代碼是錯(cuò)誤的:

10++;

對(duì)于復(fù)合賦值運(yùn)算符,例如:

i+=10;

等效于:

i=i+10;增量運(yùn)算符最常見的用法是i++,而不是比較繁瑣的i=i+1??梢栽诓僮鲾?shù)前面或后面使用增量運(yùn)算符。在下面的示例中,age首先遞增,然后再與數(shù)字30進(jìn)行比較:

++age>=30

在下面的示例中,age首先與數(shù)字30進(jìn)行比較,然后再遞增:

age++>=30

還可以使用賦值運(yùn)算符給同一表達(dá)式中的多個(gè)變量賦值。在下面的語句中,a的值會(huì)被賦予變量b、c和d:

d=c=b=a;

7)位運(yùn)算符

位運(yùn)算符是用得最少的運(yùn)算符。位運(yùn)算通常只在利用匯編語言或C/C++語言進(jìn)行系統(tǒng)軟件中的底層開發(fā)時(shí)才會(huì)用到,在此不再贅述。8.4.5函數(shù)

1.內(nèi)置函數(shù)

Flash中定義了大量的內(nèi)置函數(shù),可用于訪問特定的信息,執(zhí)行特定的任務(wù)。所有的內(nèi)置函數(shù)都是全局函數(shù),它可用于Flash文檔的任意時(shí)間軸。要調(diào)用這些全局函數(shù),無需使用目標(biāo)路徑就可以直接使用。例如,stop()就是一個(gè)全局函數(shù),用戶可以在任何位置使用該函數(shù)來停止某個(gè)時(shí)間軸上動(dòng)畫的播放。

要查看內(nèi)置的全局函數(shù),可單擊“動(dòng)作”面板中的“+”按鈕,然后選擇“全局函數(shù)”功能項(xiàng),按功能分類展開各個(gè)子菜單,查看該菜單下的全局函數(shù),如圖8-8所示。每個(gè)函數(shù)都有其各自的特性,有的函數(shù)需要接收參數(shù)也有返回值,有的函數(shù)既不接收參數(shù)也不返回值。如果將值當(dāng)作參數(shù)傳遞給函數(shù),該函數(shù)將對(duì)這些值執(zhí)行運(yùn)算。如果函數(shù)的輸入、輸出和功能都有詳細(xì)的注釋,使用該函數(shù)時(shí),用戶不需要確切地了解它的內(nèi)部工作原理,就可以在任意一個(gè)時(shí)間軸中調(diào)用它,包括加載的SWF文件的時(shí)間軸。

若要調(diào)用函數(shù),只需使用函數(shù)名稱并傳遞所必需的參數(shù)。例如:

getURL("");

getTimer();圖8-8“動(dòng)作”面板中的“全局函數(shù)”

2.自定義函數(shù)

自定義函數(shù)和變量一樣,都附加在定義它們的影片剪輯的時(shí)間軸上。Flash中自定義函數(shù)的一般形式為:

function函數(shù)名稱(參數(shù)1,參數(shù)2,…,參數(shù)n){

函數(shù)體;

}

函數(shù)體即函數(shù)的程序代碼。

例如,自定義計(jì)算圓的面積的函數(shù)areaOfCircle,它帶有參數(shù)radius。

functionareaOfCircle(radius:Number):Number{

returnMath.PI*radius*radius;

}自定義函數(shù)必須調(diào)用才有效。調(diào)用自定義函數(shù)的一般形式為:

路徑.函數(shù)名稱(參數(shù)1,參數(shù)2,…,參數(shù)n)

函數(shù)就像變量一樣,必須正確使用目標(biāo)路徑才能調(diào)用它們。如果在定義函數(shù)的時(shí)間軸上調(diào)用areaOfCircle函數(shù),計(jì)算圓的面積,并把面積賦值給變量sc:

sc=areaOfCircle(8);與處理變量一樣,可以使用?_global標(biāo)識(shí)符聲明一個(gè)全局函數(shù),該函數(shù)無需使用目標(biāo)路徑即可在所有時(shí)間軸中進(jìn)行調(diào)用。若要定義全局函數(shù),需要在函數(shù)名稱前面加上標(biāo)識(shí)符_global,格式如下:

_global.函數(shù)名稱=function(參數(shù)1,參數(shù)2,…,參數(shù)n){

函數(shù)體;

}

說明:如果函數(shù)被重新定義,則新的定義將替換舊的定義。 8.5元件實(shí)例的命名和路徑的引用

1.元件實(shí)例的命名

Flash中可以命名的元件實(shí)例包括影片剪輯實(shí)例、按鈕實(shí)例、視頻剪輯實(shí)例、動(dòng)態(tài)文本實(shí)例和輸入文本實(shí)例,它們是相互之間能產(chǎn)生交互的對(duì)象。給元件實(shí)例命名,是為了便于使用動(dòng)作腳本來控制這些對(duì)象。元件實(shí)例的名稱必須遵循標(biāo)識(shí)符的命名規(guī)則。(標(biāo)識(shí)符命名規(guī)則參見8.4.3節(jié)。)

給元件實(shí)例命名的方法是:首先選中實(shí)例,然后在“屬性”面板中輸入實(shí)例名稱即可,如圖8-9所示。圖8-9為元件實(shí)例命名

2.路徑的引用

在Flash的主時(shí)間軸上,可以放置多個(gè)元件實(shí)例,其中,影片剪輯實(shí)例又有其自身獨(dú)立的時(shí)間軸,每個(gè)影片剪輯又可以有多個(gè)元件實(shí)例,如此嵌套引用,就會(huì)出現(xiàn)層層疊疊的實(shí)例。在引用這些實(shí)例時(shí),不僅需要知道該實(shí)例的名稱,還要指明該實(shí)例的路徑。

Flash中的路徑與操作系統(tǒng)中文件的路徑基本相同,也分為絕對(duì)路徑和相對(duì)路徑。

1)絕對(duì)路徑

絕對(duì)路徑就是從主時(shí)間軸(用別名?_root表示)出發(fā),沿著影片剪輯的嵌套關(guān)系一層一層地往下查找,一直延續(xù)到目標(biāo)對(duì)象的路徑,每個(gè)影片剪輯實(shí)例之間用“.”分隔。

使用絕對(duì)路徑,不管在任何位置,都是從?_root出發(fā),找到目標(biāo)對(duì)象。

例如,在主場(chǎng)景時(shí)間軸上有一個(gè)名為heart的實(shí)例,在heart實(shí)例中又包含一個(gè)影片剪輯實(shí)例heart1,在heart1中還包含一個(gè)影片剪輯實(shí)例heart2,實(shí)例間的層次結(jié)構(gòu)關(guān)系如圖8-10所示。圖8-10實(shí)例的層次關(guān)系對(duì)heart2使用play()腳本,使用絕對(duì)路徑引用的代碼是:

_root.heart.heart1.heart2.play();

對(duì)heart使用play()腳本,使用絕對(duì)路徑引用的代碼是:

_root.heart.play();

2)相對(duì)路徑

相對(duì)路徑是從當(dāng)前位置出發(fā),給出要引用目標(biāo)對(duì)象的路徑。在相對(duì)路徑中,使用關(guān)鍵字this指示當(dāng)前層中的當(dāng)前時(shí)間軸;使用別名?_parent指示當(dāng)前時(shí)間軸的父時(shí)間軸??梢灾貜?fù)使用別名?_parent,以使影片剪輯層次結(jié)構(gòu)逐層上升。例如,_parent._parent控制影片剪輯在層次結(jié)構(gòu)中上升了兩層。

相對(duì)路徑有兩大特性:簡(jiǎn)潔性和相對(duì)性。以上例為例,如果在heart2影片剪輯實(shí)例中,對(duì)它本身使用play()腳本,使用相對(duì)路徑引用的代碼是:

this.play();

對(duì)heart使用play()腳本,因?yàn)閔eart是heart2上一級(jí)的上一級(jí)(即父級(jí)的父級(jí)),使用相對(duì)路徑引用的代碼是:

_parent._parent.play(); 8.6常用動(dòng)作腳本

8.6.1時(shí)間軸控制函數(shù)

時(shí)間軸控制函數(shù)用來控制動(dòng)畫中時(shí)間軸(播放頭)的播放進(jìn)程,例如play()、stop()等。時(shí)間軸控制函數(shù)可以添加在關(guān)鍵幀、按鈕和影片剪輯實(shí)例上。

◆play()

格式:play()

作用:使停止的動(dòng)畫在當(dāng)前位置繼續(xù)播放。

◆stop()

格式:stop()

作用:停止當(dāng)前播放的動(dòng)畫?!鬵otoAndPlay()

格式:gotoAndPlay(scene,frame)

作用:跳轉(zhuǎn)并播放。使動(dòng)畫跳轉(zhuǎn)到指定場(chǎng)景指定的幀,并從該幀開始播放;如果缺省場(chǎng)景,將跳轉(zhuǎn)到當(dāng)前場(chǎng)景指定的幀。

參數(shù):scene為跳轉(zhuǎn)的場(chǎng)景的名稱;frame為跳轉(zhuǎn)的幀的名稱或幀號(hào)。

◆gotoAndStop()

格式:gotoAndStop(scene,frame)

作用:跳轉(zhuǎn)并停止播放。使動(dòng)畫跳轉(zhuǎn)到指定場(chǎng)景指定的幀,并從該幀停止播放;如果缺省場(chǎng)景,將跳轉(zhuǎn)到當(dāng)前場(chǎng)景指定的幀。

參數(shù):scene為跳轉(zhuǎn)的場(chǎng)景的名稱;frame為跳轉(zhuǎn)的幀的名稱或幀號(hào)。◆nextFrame()

格式:nextFrame()

作用:跳至下一幀并停止播放。

◆prevFrame()

格式:prevFrame()

作用:跳至前一幀并停止播放。

◆nextScene()

格式:nextScene()

作用:跳至下一場(chǎng)景的第1幀并停止播放?!魀revScene()

格式:prevScene()

作用:跳至前一場(chǎng)景的第1幀并停止播放。

◆stopAllSounds()

格式:stopAllSounds()

作用:在不停止播放動(dòng)畫的情況下,停止當(dāng)前正在播放的所有聲音。例如,為聲音控制按鈕添加如下腳本:

on(release){

stopAllSounds();

}

當(dāng)單擊該按鈕時(shí),將停止播放動(dòng)畫中的聲音。

案例8-2:綠葉與瓢蟲

案例展示與任務(wù)

打開隨書光盤中“第8章/案例2”文件夾下的“8-2.fla”源文件,為文檔添加腳本,使瓢蟲剛開始時(shí)是靜止的,單擊play按鈕后,瓢蟲才開始走動(dòng),單擊stop按鈕,瓢蟲停止走動(dòng),如圖8-11所示,實(shí)例最終效果參見隨書光盤中“第8章/案例2/綠葉與瓢蟲.fla”。圖8-11綠葉與瓢蟲制作分析

腳本的使用與動(dòng)畫的設(shè)計(jì)結(jié)構(gòu)有關(guān)。首先打開“8-2.fla”源文件,在時(shí)間軸上可以看到瓢蟲走動(dòng)的效果直接做在場(chǎng)景中,因此可以在場(chǎng)景時(shí)間軸的第1幀上添加腳本stop(),使瓢蟲剛開始時(shí)處于靜止?fàn)顟B(tài);要使用按鈕控制動(dòng)畫的播放或停止,需要在play按鈕上添加腳本play(),在stop按鈕上添加腳本stop()。如果單擊play按鈕后,動(dòng)畫的播放過程是這樣的:從第1幀播放到最后一幀,又從最后一幀進(jìn)入到第1幀,而當(dāng)播放頭一旦進(jìn)入第1幀時(shí)就會(huì)啟動(dòng)其上的動(dòng)作stop(),從而使動(dòng)畫停止。因此需要在場(chǎng)景時(shí)間軸的最后一幀上添加腳本gotoAndPlay(2),使其跳過第1幀上的stop(),這樣動(dòng)畫只有通過點(diǎn)擊stop按鈕才能停止播放。操作步驟

(1)打開“8-2.fla”源文件。

(2)單擊場(chǎng)景時(shí)間軸“瓢蟲”圖層上的第1幀,展開“動(dòng)作”面板,單擊“添加腳本”按鈕,在下拉菜單中選擇【全局函數(shù)】→【時(shí)間軸控制】→【stop】命令,添加腳本:

stop();

(3)單擊場(chǎng)景時(shí)間軸“瓢蟲”圖層上的最后一幀,即第200幀,選擇【全局函數(shù)】→【時(shí)間軸控制】→【gotoAndPlay】命令,添加腳本:

gotoAndPlay(2);

(4)選擇play按鈕,選擇【全局函數(shù)】→【影片剪輯控制】→【on】命令,在按鈕上添加事件處理函數(shù)on(),選擇“release”鼠標(biāo)事件,然后把光標(biāo)插入點(diǎn)放在大括號(hào){}之間,添加腳本play()。在播放按鈕上添加腳本:

on(release){

play();

}

(5)選擇stop按鈕,按上一步驟在按鈕上添加事件處理函數(shù)on(release),然后在大括號(hào)之間添加腳本stop()。在停止按鈕上添加腳本:

on(release){

stop();

}

(6)測(cè)試動(dòng)畫,使用按鈕控制瓢蟲的走動(dòng)與停止。

(7)制作完成,保存文件。8.6.2影片剪輯屬性和控制函數(shù)

1.影片剪輯屬性

通過設(shè)置影片剪輯實(shí)例的屬性,可以改變影片剪輯實(shí)例的位置、透明度、大小、縮放等,能讓它們?cè)趧?dòng)畫播放過程中產(chǎn)生動(dòng)態(tài)變化,從而制作出非常炫目的動(dòng)畫效果。

影片剪輯屬性非常豐富,多達(dá)30多種,表8-5中列出了常用的屬性,其它屬性在此不一一列舉,用戶可以參考ActionScript參考手冊(cè)。

2.設(shè)置和獲取影片剪輯屬性

1)使用點(diǎn)語法設(shè)置和獲取影片剪輯屬性

大多數(shù)影片剪輯實(shí)例的屬性可以獲取,也可以設(shè)置。使用點(diǎn)語法來設(shè)置或獲取影片剪輯的屬性非常方便。案例8-3:更改綠葉屬性

案例展示與任務(wù)

打開隨書光盤中“第8章/案例2”文件夾下的“綠葉與瓢蟲.fla”源文件,為文檔添加腳本,更改綠葉背景的大小為80%,透明度為50%,如圖8-12所示,實(shí)例最終效果參見隨書光盤中“第8章/案例3/更改綠葉屬性.fla”。圖8-12更改綠葉屬性操作步驟

(1)接案例8-2,選中葉子影片剪輯實(shí)例,在“屬性”面板上給該實(shí)例命名為“yezi”。

(2)單擊主場(chǎng)景時(shí)間軸“瓢蟲”圖層的第1幀,在stop()腳本后面繼續(xù)添加如下腳本:

yezi._xscale=80;

yezi._yscale=80;

yezi._alpha=50;

(3)測(cè)試動(dòng)畫,保存文件。

2)使用with語句設(shè)置和獲取影片剪輯屬性

在上面的例子中,設(shè)置影片剪輯實(shí)例“yezi”的每一個(gè)屬性都要輸入一遍“yezi”。Flash提供with語句來簡(jiǎn)化這個(gè)操作。with語句的格式如下:

with(object){

在對(duì)象object上執(zhí)行的程序段

}在這里,object是要引用的影片剪輯實(shí)例或?qū)ο蟮拿Q,大括號(hào)內(nèi)的程序段是希望在引用對(duì)象上執(zhí)行的動(dòng)作腳本。使用with語句簡(jiǎn)化“yezi”屬性設(shè)置,代碼如下:

with(this.yezi){

_xscale=80;

_yscale=80;

_alpha=50;

}

3.影片剪輯控制函數(shù)

影片剪輯控制函數(shù)是用來控制影片剪輯的命令語句,在“動(dòng)作”面板中展開“全局函數(shù)”,選擇“影片剪輯控制”,可以看到Flash內(nèi)置的影片剪輯控制函數(shù)。影片剪輯控制函數(shù)的使用對(duì)象只能是影片剪輯實(shí)例。

◆setProperty()

格式:setProperty(target,property,expression)

作用:計(jì)算expression表達(dá)式的值,并把它賦給影片剪輯實(shí)例target的屬性property。

參數(shù):target為要設(shè)置屬性的影片剪輯實(shí)例路徑和實(shí)例名;property為要設(shè)置的屬性;expression為屬性值表達(dá)式?!鬵etProperty()

格式:getProperty(target,property)

作用:獲取影片剪輯實(shí)例target的property屬性值。

參數(shù):target為影片剪輯實(shí)例路徑和實(shí)例名;property為要獲取的屬性。

◆duplicateMovieClip()

格式:duplicateMovieClip(target,newname,depth)

作用:復(fù)制影片剪輯實(shí)例target,新生成的影片剪輯實(shí)例newname放到深度為depth的層上。參數(shù):target為影片剪輯實(shí)例路徑和實(shí)例名;newname為復(fù)制的影片剪輯實(shí)例的名稱;depth為復(fù)制的影片剪輯實(shí)例的深度級(jí)別編號(hào)。深度級(jí)別是所復(fù)制的影片剪輯的堆疊順序,這種堆疊順序很像時(shí)間軸中圖層的堆疊順序。必須為每個(gè)所復(fù)制的影片剪輯分配一個(gè)唯一的深度級(jí)別,否則后來復(fù)制的影片剪輯實(shí)例將替換以前復(fù)制的影片剪輯實(shí)例,新復(fù)制的影片剪輯實(shí)例總是在以前復(fù)制的影片剪輯實(shí)例的上方?!魊emoveMovieClip()

格式:removeMovieClip(target)

作用:刪除使用duplicateMovieClip命令復(fù)制出來的影片剪輯實(shí)例target。

參數(shù):target為要?jiǎng)h除的影片剪輯實(shí)例路徑和實(shí)例名?!魋tartDrag()

格式:startDrag(target,[lock,left,top,right,bottom])

作用:使用鼠標(biāo)拖曳影片剪輯實(shí)例target。

參數(shù):target為要拖動(dòng)的影片剪輯實(shí)例路徑和實(shí)例名。Lock為布爾值,當(dāng)lock為true時(shí),指定可拖動(dòng)影片剪輯實(shí)例鎖定到鼠標(biāo)位置中央;當(dāng)lock為false時(shí),鎖定到用戶首次單擊該影片剪輯的位置上。left、top、right和bottom為指定該影片剪輯的拖曳范圍。

◆stopDrag()

格式:stopDrag()

作用:停止拖曳影片剪輯實(shí)例。案例8-4:熱氣球

案例展示與任務(wù)

打開隨書光盤中“第8章/案例4”文件夾下的“8-4.fla”源文件,為文檔添加腳本,單擊[+]按鈕復(fù)制一個(gè)熱氣球,單擊[-]按鈕刪除一個(gè)復(fù)制出來的熱氣球,要求復(fù)制出來的熱氣球其位置和大小是隨機(jī)的,如圖8-13所示,實(shí)例最終效果參見隨書光盤中“第8章/案例4/熱氣球.fla”。圖8-13熱氣球制作分析

在[+]按鈕上添加腳本duplicateMovieClip(),復(fù)制熱氣球,并使用setProperty()設(shè)置熱氣球的X、Y坐標(biāo)和縮放屬性,特別要注意復(fù)制的熱氣球一定要放在不同深度級(jí)別上;在[-]按鈕上添加腳本removeMovieClip(),刪除先前復(fù)制出來的熱氣球。操作步驟

(1)打開“8-4.fla”源文件,為場(chǎng)景中的熱氣球?qū)嵗麨椤皅iu”。

(2)在場(chǎng)景時(shí)間軸的第1幀上添加腳本:

//變量i用來給復(fù)制的新實(shí)例創(chuàng)建不同的后綴名,同時(shí)把新實(shí)例放在不同i值的深度級(jí)別上i=1;

(3)選擇[+]按鈕,添加腳本:

on(press){

//復(fù)制出熱氣球的一個(gè)新實(shí)例,動(dòng)態(tài)命名為"qiu"+i,并把它放在深度為i的層上

duplicateMovieClip(this.qiu,"qiu"+i,i);

//以舞臺(tái)尺寸為參考,使用random()函數(shù)隨機(jī)設(shè)置新實(shí)例的X、Y坐標(biāo)

setProperty("qiu"+i,_x,random(800)+100);

setProperty("qiu"+i,_y,random(100)+400);

//隨機(jī)設(shè)置新實(shí)例的水平和垂直縮放比例都為t,確保等比例縮放

t=random(50)+50;

setProperty("qiu"+i,_xscale,t);

setProperty("qiu"+i,_yscale,t);

//修改i值,為下一次復(fù)制做好準(zhǔn)備

i=i+1;

}

(4)選擇[-]按鈕,添加腳本:

on(press){

//以后綴名遞減的方式刪除復(fù)制出來的影片剪輯實(shí)例

i=i-1;

removeMovieClip("qiu"+i);

}

(5)測(cè)試動(dòng)畫,保存文件。8.6.3網(wǎng)絡(luò)/瀏覽器控制函數(shù)

網(wǎng)絡(luò)/瀏覽器控制函數(shù)主要用來控制動(dòng)畫的播放形式以及網(wǎng)絡(luò)的鏈接。

◆getURL()

格式:getURL(url,[window,[method]])

作用:getURL()動(dòng)作有兩個(gè)功能,其中一個(gè)功能是將指定的URL加載到瀏覽器窗口,另外一個(gè)功能是將變量數(shù)據(jù)發(fā)送給指定的URL。參數(shù):url為用來獲取文檔的統(tǒng)一定位資源URL;window為可選項(xiàng),設(shè)置所要訪問鏈接的網(wǎng)頁窗口打開方式??奢斎胩囟ù翱诘拿Q,或從下面的列表中選擇。

_self:在當(dāng)前瀏覽器中打開鏈接。

_blank:在新窗口中打開鏈接。

_parent:在當(dāng)前幀的上一級(jí)中打開鏈接。

_top:在當(dāng)前瀏覽器上方新開一個(gè)鏈接。例如在Dreamweaver里設(shè)置了一些框架,本影片位于某一框架中,當(dāng)希望鏈接的URL不替代任何框架而出現(xiàn)在所有框架之上時(shí),就可以選擇此選項(xiàng)。

method規(guī)定參數(shù)的傳輸方式。大多數(shù)情況下,其默認(rèn)參數(shù)為Don'tSend。如果要將內(nèi)容提交給服務(wù)器的腳本,就要選SendUsingGET或者SendUsingPOST。“GET”表示將參數(shù)列表直接添加到url之后,與之一起提交,一般適用于參數(shù)較少且簡(jiǎn)單的情況。“POST”表示將參數(shù)列表單獨(dú)提交,在速度上會(huì)慢一些,但不容易丟失數(shù)據(jù),適用于參數(shù)較多較復(fù)雜的情況。

例如,當(dāng)單擊按鈕時(shí),在新窗口中打開,腳本代碼如下:

getURL("","_blank");

在下面的示例中,使用

getURL()來發(fā)送電子郵件:

getURL("mailto:yanqing@163.com");◆fscommand()

格式:fscommand(command,arguments)

作用:fscommand()瀏覽器控制函數(shù)有兩個(gè)方面的用途,它可用來控制Flash播放器的播放方式,還可用來給其他應(yīng)用程序傳遞信息。

參數(shù):command是可以執(zhí)行的命令;arguments是執(zhí)行command命令所使用的參數(shù)。表8-6中列出了fscommand函數(shù)可以執(zhí)行的命令和參數(shù)。案例8-5:商業(yè)廣告

案例展示與任務(wù)

打開隨書光盤中“第8章/案例5”文件夾下的“8-5.fla”源文件,為文檔添加腳本,使動(dòng)畫全屏播放,然后使用窗口控制按鈕控制播放器窗口。單擊標(biāo)準(zhǔn)按鈕,播放器以標(biāo)準(zhǔn)菜單方式播放;單擊全屏按鈕,播放器全屏播放;單擊退出按鈕,關(guān)閉播放器。如圖8-14所示,實(shí)例最終效果參見隨書光盤中“第8章/案例5/商業(yè)廣告.fla”。圖8-14商業(yè)廣告

制作分析

本例中使用fscommand()函數(shù)控制播放器的播放方式。在動(dòng)畫的第1幀上添加fscommand()腳本,使動(dòng)畫進(jìn)場(chǎng)時(shí)全屏播放;最后一幀上添加gotoAndPlay(2),確保后面播放器窗口由窗口控制按鈕控制。分別在三個(gè)按鈕上添加fscommand(),使用不同的命令和參數(shù)控制播放器的播放方式。操作步驟

(1)打開“8-5.fla”源文件。

(2)新建圖層,命名為“腳本”。在“腳本”圖層的第1幀上添加腳本:

fscommand("fullscreen",true);

在最后一幀上添加:

gotoAndPlay(2);

(3)選擇最左邊的標(biāo)準(zhǔn)按鈕,添加腳本:

on(release){

fscommand("fullscreen","false");

}選擇中間的全屏按鈕,添加腳本:

on(release){

fscommand("fullscreen","true");

}

選擇右邊的退出按鈕,添加腳本:

on(release){

fscommand("quit");

}

(4)導(dǎo)出動(dòng)畫測(cè)試播放器的播放效果。

(5)制作完成,保存文件。8.6.4其他動(dòng)作腳本

◆tellTarget()

格式:tellTarget(target){

在目標(biāo)對(duì)象上要執(zhí)行的動(dòng)作

}

作用:將大括號(hào)內(nèi)的動(dòng)作應(yīng)用于target指定的影片剪輯。

參數(shù):target為影片剪輯實(shí)例路徑和實(shí)例名。例如,在主場(chǎng)景中有一個(gè)影片剪輯實(shí)例“ball”,“ball”影片剪輯時(shí)間軸的第1幀上有stop()動(dòng)作,在主場(chǎng)景按鈕上添加如下的腳本代碼:

on(release){

tellTarget(“ball”){

gotoAndPlay(2);

}

}

tellTarget會(huì)告知實(shí)例“ball”跳轉(zhuǎn)至第2幀開始播放?!魌race()

格式:trace(expression)

作用:計(jì)算表達(dá)式的值,并在輸出窗口中顯示其結(jié)果。在調(diào)試程序時(shí),常用于顯示程序在執(zhí)行過程中產(chǎn)生的中間結(jié)果。

參數(shù):expression,要輸出顯示的表達(dá)式。

例如,在循環(huán)體中使用trace()語句輸出顯示計(jì)數(shù)器i的值,以便于觀察i值的變化情況。程序代碼如下:

while(i<=250){

s=s+i;

i=i+2;

trace(i);

} 8.7程序結(jié)構(gòu)控制

8.7.1選擇結(jié)構(gòu)

在Flash中,選擇結(jié)構(gòu)控制語句有4種,即if、ifelse、ifelseif以及switch。前三種語句實(shí)際上是同一概念,也是最常用的選擇結(jié)構(gòu)控制語句,它們的核心都是if。

1)if語句

if語句的語法格式如下:

if(條件){

滿足條件時(shí)要執(zhí)行的程序段

}在if語句中有一對(duì)小括號(hào)和一對(duì)大括號(hào),小括號(hào)內(nèi)放置的是條件,大括號(hào)內(nèi)放置的是程序代碼。只有當(dāng)條件滿足時(shí),大括號(hào)內(nèi)的程序代碼才會(huì)被執(zhí)行;否則,當(dāng)條件不滿足時(shí)跳出if語句,執(zhí)行大括號(hào)后面的后繼語句。但如果條件滿足時(shí)要執(zhí)行某個(gè)動(dòng)作,條件不滿足時(shí)也要執(zhí)行相應(yīng)的動(dòng)作,可以使用ifelse語句。

2)?ifelse語句

ifelse語句的語法格式如下:

if(條件){

滿足條件時(shí)執(zhí)行的程序段

}else{

不滿足條件時(shí)執(zhí)行的程序段

}

if語句還可以通過嵌套的方式判斷多個(gè)條件,只要在if語句中放置elseif語句即可。

3)?ifelseif語句

ifelseif語句的語法格式如下:

if(條件1){

滿足條件1時(shí)執(zhí)行的程序段

}elseif(條件2){

滿足條件2時(shí)執(zhí)行的程序段

}例如,要表示這樣的選擇:“如果星期天不下雨,我們就去文化園;如果下雨剛好又有專車去長沙的話,我們就去春天百貨;否則我們只能呆在家里。”這句話有三種選擇:如果不下雨,就去文化園;如果下雨,又有專車,我們就去春天百貨;如果下雨又沒有專車,我們就只能呆在家里。使用ifelse語句嵌套來表示這句話,代碼如下:

if(星期天不下雨){ 我們?nèi)ノ幕瘓@

}elseif(有專車去長沙){ 我們?nèi)ゴ禾彀儇?/p>

}else{ 我們呆在家里

}8.7.2循環(huán)結(jié)構(gòu)

if語句是在滿足條件時(shí),執(zhí)行一次大括號(hào)內(nèi)的動(dòng)作。如果有些動(dòng)作需要反復(fù)執(zhí)行,就需要使用循環(huán)控制語句。在Flash中,循環(huán)控制語句有4種,即for、forin、while以及dowhile。下面介紹最常用最基本的for語句和while語句。

1)?for語句

for語句的語法格式如下:

for(init;condition;next){

循環(huán)體

}其中,init是循環(huán)前對(duì)循環(huán)變量初始化,通常是一個(gè)賦值語句。condition是一個(gè)結(jié)果為布爾值(true或false)的循環(huán)條件表達(dá)式,每次循環(huán)前計(jì)算該表達(dá)式的值,如果值為true,則執(zhí)行大括號(hào)內(nèi)要重復(fù)執(zhí)行的腳本,這些要重復(fù)執(zhí)行的腳本也稱為循環(huán)體;如果值為false,就退出循環(huán)。next是每次循環(huán)后要執(zhí)行的語句,通常是遞增或遞減的賦值語句,它用來修改循環(huán)變量的值。例如,計(jì)算自然數(shù)1+2+3+…+100的累加和,使用for語句編寫的程序代碼如下:

//變量s用來存儲(chǔ)累加和,循環(huán)前給s清零

s=0;

//變量i用來存儲(chǔ)累加數(shù)。i從1開始做加法,即初始化i=1;累加數(shù)i一直要加到100,所以循環(huán)//條件是i<=100;每次相加后累加數(shù)要增1,即i++

for(i=1;i<=100;i++){

s=s+i;

}圖8-15程序流程圖根據(jù)流程圖可以得出for語句循環(huán)結(jié)構(gòu)的執(zhí)行過程是:

(1)首先對(duì)循環(huán)變量初始化。在本例中的循環(huán)條件是i<=100,對(duì)循環(huán)變量i進(jìn)行初始化,即i=1。

(2)對(duì)循環(huán)條件進(jìn)行判斷。循環(huán)條件是i<=100,此時(shí)的i=1,滿足循環(huán)條件,執(zhí)行循環(huán)體s=s+i。執(zhí)行完循環(huán)體后,修改循環(huán)變量i的值,即i++。

(3)再返回循環(huán)條件進(jìn)行判斷。這時(shí)i=2,滿足循環(huán)條件,繼續(xù)執(zhí)行循環(huán)體,然后修改循環(huán)變量的值。

(4)如此反復(fù),直到i大于100,不再滿足循環(huán)條件,則退出循環(huán),執(zhí)行for語句的后繼語句。

2)?while語句

while語句的語法格式如下:

while(condition){

循環(huán)體

}當(dāng)程序遇到while語句時(shí),首先對(duì)condition循環(huán)條件表達(dá)式求值,如果值為true,就執(zhí)行大括號(hào)內(nèi)的循環(huán)體,循環(huán)體執(zhí)行完后,返回去再次檢測(cè)condition的求值結(jié)果;如果結(jié)果為true,就會(huì)不斷地重復(fù)執(zhí)行循環(huán)體,直到condition的求值結(jié)果為false時(shí),才退出循環(huán),執(zhí)行while語句的后繼語句。使用while語句來改寫上面的例子,程序代碼如下:

s=0;

i=1;

while(i<=100){

s=s+i;

i++;

}在while語句中,特別要注意的是,循環(huán)變量初始化要放在while語句之前,循環(huán)體中一定要有修改循環(huán)變量的表達(dá)式,就是要?jiǎng)?chuàng)造出最終能使condition求值結(jié)果為false的條件,確保程序能退出循環(huán)。

案例8-6:愛心殘影

案例展示與任務(wù)

打開隨書光盤中“第8章/案例6”文件夾下的“8-6.fla”源文件,為文檔添加腳本,制作愛心殘影效果,如圖8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論