FLASH深層次編程應(yīng)用_第1頁
FLASH深層次編程應(yīng)用_第2頁
FLASH深層次編程應(yīng)用_第3頁
FLASH深層次編程應(yīng)用_第4頁
FLASH深層次編程應(yīng)用_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第 1 章 Actio nScript 編程1.1 ActionScript 簡介1.1.1Actio nScript 的歷史從Flash 3開始,ActionScript就開始出現(xiàn),當(dāng)時(shí)的 ActionScript還非常簡陋,功能也僅僅局限于 控制動畫的播放等動作。等到Flash 4的推出,ActionScript的功能被進(jìn)一步完善?;緦?shí)現(xiàn)了相應(yīng)各種事件、控制動畫行 為、和后臺交換數(shù)據(jù)的功能。但是其編程風(fēng)格仍停留在面向過程的階段,盡管也有對象的概念, 但是非常模糊。在Flash 5中,ActionScript出現(xiàn)了翻天覆地的變化,基本語法都經(jīng)過了改寫,有點(diǎn)和 JavaScript類似,風(fēng)格

2、也從面向過程轉(zhuǎn)變到了面向?qū)ο?,提供了自定義的函數(shù)以及新增了強(qiáng)大的數(shù)學(xué)函數(shù)、顏色、聲音以及XML等對象的支持。使得編程更加得心應(yīng)手,能夠做出更多酷炫的效果,和用 戶的交互也得到了進(jìn)一步的提高。Flash MX推出之后,它的 ActionScript以Flash 5的ActionScript為基礎(chǔ),整個(gè)語法體系以及編程風(fēng)格、界面都沒有做很大的改動,只是在某些函數(shù)、對象的實(shí)現(xiàn)上做了擴(kuò)充,新增了一些方法,提供了更為強(qiáng)大的對象支持。1.1.2Flash MX Actio nScript的特點(diǎn)Flash MX Actio nScript 具有以下特點(diǎn):(1)ActionScript能夠控制Flash動畫的

3、播放行為和對象的屬性。根據(jù)用戶的動作來做出響應(yīng),并在動畫中體現(xiàn)出來。根據(jù)載體的不同,F(xiàn)lash ActionScript可以分為兩類。一類是放在Frame幀中的Acti on Script,主要是做一些計(jì)算以及控制動畫的播放行為;另一類是放在 Butt on按鈕或Movie Clip中的ActionScript,其主要功能是響應(yīng)用戶的事件,當(dāng)然在響應(yīng)用戶事件后也會進(jìn)行 一些計(jì)算或是控制動畫的播放。ActionScript更能控制動畫中的每一個(gè)對象的各種屬性的變化,例如長寬、旋轉(zhuǎn)角度、顏色、大小等。(2) Flash MX ActionScript是一種面向?qū)ο蟮木幊陶Z言,它的風(fēng)格和JavaSc

4、ript語言相類似。程序由多行語句構(gòu)成,每行語句又都是由一些指令、變量、運(yùn)算符以及結(jié)尾的分號組成。它擁 有循環(huán)、判斷、對象事件等高級語言的特性。(3)Flash MX ActionScript可以使用自定義函數(shù)。如果有一個(gè)功能要經(jīng)常使用,則可以把它寫成自定義函數(shù),在用到的時(shí)候調(diào)用它。從Flash 5開始,ActionScript就支持自定義函數(shù),而不用像Flash 4那樣,把程序?qū)懺谝粋€(gè)空白幀中,然后用Call語句去調(diào)用了。(4)支持 XML 和 XMLSocket。除了通過 getURL()和 loadVariablesNum 等幾種由 Flash 4 提供的方法和后臺程序?qū)崿F(xiàn)交互外,Act

5、ionScript更提供了 XML和XMLSocket對象來和后臺程序進(jìn)行交互。任何基于XML標(biāo)準(zhǔn)開發(fā)的程序都能和Flash相結(jié)合,通過XML對象,F(xiàn)lash可以發(fā)送或獲取XML資料并對XML資料進(jìn)行分析,借此達(dá)到交換數(shù)據(jù)的目的。Flash MX對XML的支持在Flash 5的基礎(chǔ)上又做了進(jìn)一步的擴(kuò)充。1.1.3Flash MX Actio nScript編程元素在這一小節(jié)中要介紹ActionScript中的一些基本編程元素,了解了這些才能學(xué)好ActionScript。(1) 對象。對象是一個(gè)非常重要的概念。從Flash 5開始,ActionScript就是面向?qū)ο蟮某绦蛘Z言了,所以,對象對于

6、 ActionScript來說,是最為重要的概念,一切都基于對象,一切都離不開 對象。在ActionScript中,對象分為兩類,一類是用戶自己制作的動畫元件(Symbol)實(shí)例化后而形成的實(shí)體對象(Instanee Object),聲明這類對象后,可以在ActionScript堆砌的屬性和動作行為進(jìn)行控制;另一類是Flash MX自己定義的抽象對象 (Abstract Object),例如Math, Date等,這類對 象主要用于計(jì)算。(2) 點(diǎn)運(yùn)算符。通過點(diǎn)運(yùn)算符,可以訪問一個(gè)對象的屬性(Property)或是方法(Method)。例如, 一個(gè) 對象名 叫 myObject,它 有一個(gè) m

7、yProperty 屬 性和 myMethod()方法,可 以通過 myObject.myProperty 和 myObject.myMethod()來分別訪問它們。(3) 數(shù)據(jù)類型以及變量。在 Flash MX Actio nScript中,提供了豐富的數(shù)據(jù)類型,從整數(shù)、字符、布爾值到各種對象甚至 MovieClip都是不同的數(shù)據(jù)類型。在變量方面,ActionScript允許聲明全局變量和局部變量。所謂全局變量,也就是聲明一次,在整個(gè)動畫的Acti on Script程序都可以使用的變量;所謂局部變量,就是在函數(shù)中聲明,只能在函數(shù)中被使用的局部性的變量。(4) 事件響應(yīng)。在Flash動畫中,

8、動畫的交互性就是通過對用戶動作的響應(yīng)來完成的。在ActionScript中,用戶的事件有鼠標(biāo)事件、鍵盤事件等,諸如鼠標(biāo)的移動、按鈕的按下和松開、拖動以及鍵盤上的按鍵被按下等都屬于用戶事件的范疇。ActionScript可以通過On()方法來進(jìn)行響應(yīng)。(5) 語句和運(yùn)算符。Flash MX ActionScript的語法風(fēng)格和JavaScript的非常類似,同樣有判斷、循環(huán)等控制流程的語句,同時(shí)還提供了豐富的運(yùn)算符號。當(dāng)然多條語句組成的一個(gè)常用的功能可以被封裝成一個(gè)自定義函數(shù)。這些都使得Acti on Script更易于使用。熟練地使用好這些編程元素,就可以編寫出強(qiáng)大的ActionScript腳

9、本,使Flash動畫擁有良好的交互性。1.1.4如何編輯 ActionScript 腳本在Flash中要使用 ActionScript有兩種方式,一種是直接在 Flash中寫入ActionScript程序段,另 一種是在Flash中包含引入*.as文件(腳本文件)。要在Flash中寫入Actio nScript程序,就要在 Actio ns面板(Action Pa nel)中進(jìn)行編輯。前面說過,F(xiàn)lash中的ActionScript按載體的不同可以分為兩大類,一類在幀(Frame)上,另一類是在按鈕(Button Symbol)中。所以,在編輯這兩類不同的Actio nScript腳本時(shí),打開

10、 Actio ns面板方法也略有不同。編輯加載于幀(Frame)中的ActionScript時(shí),在Timeline中要加載的那一幀上單擊鼠標(biāo)右鍵,在 彈出的菜單(如圖1-1所示)上選擇 Actio ns命令,就會彈出Actio nScript的編輯面板。如果要編輯按鈕的 Actio nScript,則只要在按鈕上單擊右鍵,如圖1-2所示,同樣選擇 Actio ns,就會彈出編輯該按鈕的Actio nScript的Actio ns面板。3Q-iiife恤KibH Al141UtCdft In AK*tfndfcIMk 童.XML CMwM CO 鈿出 * frOpng圖1-1圖1-2下面就來看看

11、如何使用Actio ns面板來編輯Acti on Script代碼。圖1-3是Actio ns面板。可以在圖中看到,整個(gè)面板被分成左右兩大部分。在面板的最上方,是 一個(gè)下拉菜單,在這里,可以選擇要編輯的ActionScript代碼是屬于哪一個(gè)物體的,例如,哪一幀或哪一個(gè)按鈕。在圖1-3的例子中,將要編輯的ActionScript是屬于Symbol 1這個(gè)按鈕的。下 拉菜單的下面,就是分為左右兩大部分的腳本編輯窗口。左面是Acti on Script語句選擇區(qū),右面是ActionScript代碼編輯區(qū)??梢钥吹剑谧竺娴恼Z句選擇區(qū)中,各種ActionScript中的語句、運(yùn)算符、對象等都被分門別

12、類地以樹狀的格式排好,這樣,在編輯ActionScript代碼的時(shí)候,用戶就能根據(jù)需要很快找到合適的語句或?qū)ο?。在使用的時(shí)候,可能因?yàn)榫庉媴^(qū)的代碼行較長, 需要頻繁橫向翻動才能夠顯示全部的代碼,這時(shí)候,可以用語句選擇區(qū)右側(cè)的按鈕來控制顯示或隱藏選擇區(qū),來擴(kuò)大編輯區(qū)的顯示范圍。T Activn* ButtonAdwm far (IN*O rvi1mc rwm Efcned (SmbcJ 1)ActionsMlrJ *yTIJ7lJ7lwPrapertbesDblectsDefxecatedFlash UI ComponentsIndex: Actions th刖 can be MOM to yo

13、ur w心0 4No scUd.圖1-3在右側(cè)的編輯區(qū)下方是一個(gè)文本框,這是編輯ActionScript的主要場所。除了這個(gè)文本框,編輯區(qū)里還有許多按鈕。在按鈕之上的一塊灰色區(qū)域是參數(shù)設(shè)置區(qū),選中一行代碼后,可以在這里ActionScript函數(shù)的參數(shù)。下面將一一介紹代碼編輯區(qū)內(nèi)的各按鈕的功能:使Actions面板總在屏幕上顯示(再按一次取消);打開ActionScript的語法參考手冊;添加一條ActionScript 語句;刪除一條ActionScript 語句;在編輯文本框內(nèi)查找指定字符串;在編輯文本框中查找并替換指定字符串;插入一個(gè)目標(biāo)路徑(關(guān)于 Actio nScript的路徑將在以

14、后說明);設(shè)置/刪除斷點(diǎn),在調(diào)試 ActionScript 代碼時(shí)非常有用,程序執(zhí)行到斷點(diǎn)處將暫停執(zhí)行,這時(shí)就可以查看程序運(yùn)行的 中間結(jié)果,有助于排錯(cuò);L_i切換專家模式和普通模式,以及標(biāo)注行號功能。在普通模式下,每一句 ActionScript語句都是從左側(cè)的語句選擇區(qū)所選得的,適合于對ActionScript 非常熟悉的用戶使用。在專家模式下,ActionScript 編輯框內(nèi)可以自由輸入、自由書寫ActionScript 代碼,這時(shí),可以不通過左側(cè)的語句選擇區(qū)而直接輸入ActionScript代碼,以提高編寫代碼的速度,適合精通ActionScript 的用戶 使用;將當(dāng)前ActionS

15、cript語句下移一行;/小66/小將當(dāng)前ActionScript語句上移一行在了解了這些按鈕的功用之后,可以發(fā)現(xiàn),ActionScript雖然只是Flash內(nèi)部使用的腳本語言,但是從編輯到調(diào)試,功能十分完善,而且編輯界面十分友好,幫助也十分齊全。1.2 ActionScript 語法介紹(1)1.2.1Actio nScript的數(shù)據(jù)類型在ActionScript中有著豐富的數(shù)據(jù)類型,從數(shù)字、字符串到對象一應(yīng)俱全。在合適的地方使用合 適的數(shù)據(jù)類型會使代碼變得簡潔明了。在Flash MX Actio nScript中,數(shù)據(jù)的類型大致有整數(shù)數(shù)型、字符串型、布爾型、實(shí)例型以及對象型,下面將逐一介紹

16、。1.整數(shù)/小數(shù)型這一類是在 Actio nScript中經(jīng)常用到的數(shù)據(jù)類型,這種數(shù)據(jù)類型的值為整數(shù)或者小數(shù),例如 或者3.14159。一般整數(shù)/小數(shù)型數(shù)據(jù)被用做計(jì)算或者記錄坐標(biāo)、在循環(huán)中使用的計(jì)數(shù)器等功能。 這種類型的值可以經(jīng)過數(shù)學(xué)運(yùn)算符例如“+”,“ *”,“/”等的運(yùn)算,其結(jié)果仍然為整數(shù)數(shù)型。2.字符串型這種類型的數(shù)據(jù)也是經(jīng)常被使用的,用引號括起來的一串字符、數(shù)字或者符號的組合就是一個(gè) 字符串,例如“ abcd123+ - ”和“ 12345”都是字符串。這種類型的數(shù)據(jù)通常被用來存放被輸入 或者要輸出的一些文本信息。字符串也可以被一些字符串運(yùn)算符所運(yùn)算,例如,可以通過字符 串連接符“ +

17、 ”來連接多個(gè)字符串,其結(jié)果仍是一個(gè)字符串?!?aaabbb” + “ cccddd ”的結(jié)果是“ aaabbbcccddd”。在字符串中有一些特殊的字元是普通的字符無法表示的,這就需要用到轉(zhuǎn)義 字符。所謂轉(zhuǎn)義字符就是用兩個(gè)字符的組合來表示一個(gè)特殊的字符。在Flash ActionScript中,和C語言或Java語言類似,都使用“”來表示轉(zhuǎn)義字符?!?”字符再加上另一個(gè)字符可以表示個(gè)特殊字符。具體的表示方法可以參見表 1-1。表1-1 轉(zhuǎn)義字符的表示方法轉(zhuǎn)義字符所表示的特殊字符bBackspace 回退f打印機(jī)換頁符n換行符rReturn回車符tTab跳格符“雙引號單引號反斜線符000-37

18、78進(jìn)制數(shù),例如777表示8進(jìn)制的777x0000-xFFFF16進(jìn)制數(shù),例如x1a表示16進(jìn)制的1a3.布爾型布爾型的數(shù)據(jù)只可能有兩種值:True (邏輯真)或者False (邏輯假),一般被用在判斷中。布爾值也可以經(jīng)過邏輯運(yùn)算符運(yùn)算,其結(jié)果仍是布爾值。例如,!true=false。在判斷句的條件中,數(shù)值0被認(rèn)為和布爾值的 False相同,非0的數(shù)值被認(rèn)為和 True相同。4.實(shí)例型在Flash中,每一個(gè)物件都可以被實(shí)例化。實(shí)例化后的物件既是對象又是一種特殊的數(shù)據(jù)類型。物件實(shí)例化后,我們可以對其控制。通過改變它的屬性,以及使用它的方法來實(shí)現(xiàn)對物件外觀 和行為的改變,從而達(dá)到用戶交互的效果。5

19、.對象型這里所說的對象型和實(shí)例型有點(diǎn)類似。只不過實(shí)例型是具體化、實(shí)例化的Flash物件,是看得見的、具體存在的。而對象型是抽象存在的,沒有實(shí)體。例如Math對象、Date對象、XML對象等,它們沒有看得見摸得著的外觀,但卻抽象存在。這些對象同樣有一些屬性和方法,在FlashActi on Script中,這些對象往往是計(jì)算或后臺應(yīng)用中不可或缺的部分。1.2.2Actio nScript的常量和變量所謂常量和變量,就是在程序中被引用,用來代替數(shù)字、字符等值的代號。常量和變量的不同 之處在于:常量被設(shè)定初始值后,在后續(xù)的程序中,只能引用其被設(shè)定的初始值,而不能更改 其所代表的值,也就是說,常量的值

20、是恒定不變的;而變量則不同,顧名思義,其所代表的值 是可以被改變的,在程序中可以使用變量的值進(jìn)行計(jì)算,計(jì)算后得到的結(jié)果仍然存回變量,以 備輸出或后續(xù)程序的引用。在Flash ActionScript中,固定的常量都是 Flash自己設(shè)定好的,直接引用即可。Flash中的常量有個(gè)特點(diǎn)一一它們的標(biāo)示符都是大寫的,例如 key.ENTER表示回車鍵、nath.PI表示圓周率的值 等。要使用變量,就首先要有變量名。在Flash中,變量名的定義有以下原則:乜要以字母開始,并且不能有特殊字符;在作用域內(nèi)惟一,如果有重復(fù)聲明的情況,則以第一次聲明為準(zhǔn);不能是關(guān)鍵字或者布爾值;大于32返回值為true;23返

21、回值為false小于23返回值為true;3=大于等于3=2返回值為true; 3=3 返回值為true; 2=3 返回值為false=小于等于2=3返回值為true; 2=2 返回值為true; 3=2 返回值為false!=或 不等于2!=3返回值為true;2!=2 返回值為false=恒等于5= = = 5 返回值為 true;5 = = 5 返回 true,5 = = = 5返回false字符串運(yùn)算符add連接abc add efg =abcdefg ”eq等于abc eqabc返回值 truege大于等于bbc ge abc返回值 true (英文比較ASCII碼,中文比較機(jī)內(nèi)碼)

22、gt大于bbc gt abc返回值 true (英文比較ASCII碼,中文比較機(jī)內(nèi)碼)le小于等于abc lebbc返回值 true (英文比較ASCII碼,中文比較機(jī)內(nèi)碼)lt小于abc ltbbc返回值 true (英文比較ASCII碼,中文比較機(jī)內(nèi)碼)ne不等于bbc ne abc返回值 true (英文比較ASCII碼,中文比較機(jī)內(nèi)碼)位運(yùn)算符&位與二進(jìn)制位與運(yùn)算 1&0 = 0 ; 1&1=1 ; 0&0=0|位或二進(jìn)制位或運(yùn)算 1 |仁1 ; 1 | 0=1 ; 0 | 0=0A位異或二進(jìn)制位異或運(yùn)算 1A仁0; 0A仁1; 0A0=0位非二進(jìn)制位非運(yùn)算1=0 ; 0=1左移二進(jìn)制

23、數(shù)左移0110右移二進(jìn)制數(shù)右移,缺位補(bǔ)最左一位的數(shù)值11001=1110無符號右移二進(jìn)制數(shù)右移,缺位 0補(bǔ)11001=0110賦值運(yùn)算符=賦值a=b,將b的值賦給a,可以連用a=b=c+=、一二、運(yùn)=前面是一個(gè)運(yùn)算符,如果 a+=2,則等同于a=a+2; a- =2等同于*= /=、%=算a=a - 2; a%=2等同于a=a%2以此類推&=、|=、賦=、值A(chǔ)= =在ActionScript中運(yùn)算符同樣也有優(yōu)先級。括號內(nèi)的運(yùn)算具有最高優(yōu)先級,是最先運(yùn)算的;其次 是非運(yùn)算符;然后根據(jù)先乘除后加減的法則來運(yùn)算,最后是比較運(yùn)算符。如果一個(gè)表達(dá)式中的 運(yùn)算符的優(yōu)先級相等,則從左到右運(yùn)算。為了使代碼容易

24、被理解,不易出錯(cuò),建議使用括號強(qiáng) 行控制運(yùn)算的優(yōu)先級。1.2 ActionScript 語法介紹(2)1.2.4Actio nScript的簡單語法ActionScript的語法從整體上來看借鑒了許多面向?qū)ο笳Z言的優(yōu)點(diǎn),因此和現(xiàn)在流行的 C+/Java非常類似。有過語言基礎(chǔ)的讀者也許直接看代碼就能理解代碼的含義。1.和和C+ 一樣,ActionScript的語法中和表示語句體的開始和結(jié)尾,用來分割不同的語句段。2函數(shù)的說明在ActionScript中同樣也能聲明用戶自定義的函數(shù)。使用關(guān)鍵字function即可聲明用戶自定義的函數(shù)。在ActionScript中,聲明函數(shù)的位置并沒有關(guān)系,可以在代

25、碼段的開始就聲明函數(shù),也可 以在代碼段的中間或者末尾聲明函數(shù)。只要在整個(gè)代碼段中聲明了函數(shù),就可以在代碼的任何地方調(diào)用。下面是一個(gè)聲明及使用函數(shù)的例子:function test()trace(This is an example for declare a functiontest();3判斷句式在ActionScript中常常會把用戶的輸入作為條件來進(jìn)行一些判斷,以決定動畫的下一行為。ActionScript的判斷句式和C+/Java等高級語言的幾乎完全一致,其語法為:if (條件)條件為真時(shí)執(zhí)行的語句 else 條件為假時(shí)執(zhí)行的語句下面是一個(gè)完整的例子:if (a5) trace(The

26、 value of variable a is bigger tha n 5 .);else trace(The value of variable a is not bigger tha n 5.);在變量a的值大于5的時(shí)候,trace函數(shù)輸出“ The value of variable a is bigger than 5 . ”,當(dāng)a的值 小于等于 5 的時(shí)候,trace 函數(shù)就會輸出The value of variable a is not bigger than 5.。4循環(huán)句式在Flash ActionScript中,共有三種循環(huán)句式,它們是:7 for(初始化;條件;遞進(jìn))循

27、環(huán)體疔 while(條件)循環(huán)體疔 do 循環(huán)體 while(條件)下面用實(shí)例來分析這三種不同的循環(huán)句式:for循環(huán)for循環(huán)是最常用的循環(huán)方式,在它的括號中用分號隔開了三個(gè)部分。最前的是初始化變量,一 般用來初始化充當(dāng)循環(huán)計(jì)數(shù)器的變量;中間的就是循環(huán)執(zhí)行的條件,當(dāng)條件為真時(shí)執(zhí)行循環(huán)體 中的語句;最后是循環(huán)體執(zhí)行完后要執(zhí)行的語句,一般來說都是修改循環(huán)計(jì)數(shù)器變量的值,以 備下次循環(huán)判斷。下面是個(gè)實(shí)例:for (i=1;i10;i+)trace(i);這段程序?qū)⑤敵?到9共9個(gè)數(shù)字,當(dāng)i=10時(shí),循環(huán)中的條件為假,循環(huán)體將不被執(zhí)行。While循環(huán)while循環(huán),當(dāng)條件成立時(shí)執(zhí)行循環(huán)體中的語句,條件

28、的判斷在循環(huán)之前。i=1;while (i10)trace(i);i+;這段程序?qū)⑤敵?到9共9個(gè)數(shù)字,當(dāng)i=10時(shí),循環(huán)中的條件為假,循環(huán)體將不被執(zhí)行。dowhile 循環(huán)dowhile循環(huán),當(dāng)條件成立時(shí)繼續(xù)執(zhí)行循環(huán)體中的語句,條件的判斷在循環(huán)體之后,也就是說,循環(huán)體至少被執(zhí)行一次(即使條件不成立,因?yàn)闂l件是在執(zhí)行完循環(huán)體中的語句后才進(jìn)行判斷 的)。i=1;do trace(i);i+;while(i10);這段程序?qū)⑤敵?到10共10個(gè)數(shù)字,當(dāng)i=10時(shí),執(zhí)行完循環(huán)體中的語句后,才進(jìn)行判斷,發(fā) 現(xiàn)條件不成立,則不進(jìn)行下次循環(huán)。在循環(huán)中,還可以使用break和continue兩條指令,用來控

29、制循環(huán)。break中斷循環(huán)執(zhí)行后跳出循環(huán)執(zhí)行循環(huán)外的語句。例如:for (i=0;i100;i+) if (i=10) break;trace (i);這段程序運(yùn)行的結(jié)果使trace(i)輸出了 10這個(gè)值,因?yàn)楫?dāng)i等于10的時(shí)候就跳出了循環(huán)。con ti nue 中斷一次循環(huán)當(dāng)前的循環(huán)被中斷,回到循環(huán)的開始部分繼續(xù)下一次循環(huán)。例如:for (i=0;i100;i+) if (i=10) con ti nue;trace (i);這段程序的運(yùn)行結(jié)果是,除了10之外的199的數(shù)字都被trace(i)輸出。因?yàn)楫?dāng)i等于10時(shí),執(zhí)行了 continue語句,回到循環(huán)開始,i的值變成了 11。5.注釋

30、和C和Java一樣,“/”兩個(gè)斜杠表示整行注釋,在這一行內(nèi), “”之后的所有字符都會被認(rèn)為 是注釋而被忽略掉?!?* ”到“ */”之間的是段落注釋,在“ /* ”到“ */”之間的所有字符(可以 換行)都會被認(rèn)為是注釋而被忽略掉。看下面注釋的例子:/ 這是一行注釋a=5;/*下面的都是注釋這一行是注釋注釋到這行末結(jié)束*/trace(a);1.3點(diǎn)符號和路徑1.3.1對象和點(diǎn)符號因?yàn)锳ctionScript是一種面向?qū)ο蟮木幊陶Z言,所以對于ActionScript來說,最重要的概念就是對象了。對象是 Flash動畫中ActionScript可以操縱的最基本的單元。每一個(gè) Symbol物件都可

31、以被聲明成對象。在成為對象之后,就會擁有一些屬性、一些方法,Acti on Script就是通過改變這些對象的屬性,調(diào)用對象的方法來完成對動畫的操縱的。同一種類型的對象都從它的對象原型(稱為它的父對象)那里繼承了一些相同的屬性和方法。例如,Graphic Symbol在被聲明成對象之后,都會擁有_xscale和_yscale(X軸和Y軸的縮放比例)這兩個(gè)屬性。這是它們從同一個(gè)父對象處繼承來的。既然不同的對象會有相同名字的屬性或方法,那么Acti on Script如何知道要去控制哪一個(gè)對象的屬性和方法呢?這就需要用到點(diǎn)符號“.”。在點(diǎn)符號之前(左側(cè))是對象或上一層的對象,在點(diǎn)符號后面(右側(cè))則

32、是該對象的屬性、方法或下一層的對象。舉個(gè)例子看一下也許會更清楚:Object是一個(gè)對象,它有一個(gè)屬性property和一個(gè)方法 Method。如果要讀取或是給它的屬性賦值,應(yīng)該這樣做:a=Operty; /讀取屬性property 中的值并賦給變量 aOperty=b; /將變量b中的值賦給屬性 property如果要調(diào)用Object對象的一個(gè)方法,應(yīng)該這樣做:Obejct.Method();/ 調(diào)用 Object 對象的 Method() 方法或者a=Object.Method(); /將Object對象的 Method。方法的返回值賦給變量a1.3.2多

33、層式對象結(jié)構(gòu)在上面的這些例子中,點(diǎn)符號僅僅是作為分隔對象和屬性方法使用的。其實(shí),在實(shí)際應(yīng)用中, 點(diǎn)符號還有更大的用途。在Flash動畫中,每一個(gè)對象就像文件系統(tǒng)中的一個(gè)文件,都有自己的一個(gè)路徑。整個(gè)Flash的舞臺(Stage)就相當(dāng)于文件系統(tǒng)的根目錄,舞臺上的對象就像是根目錄上的文件。在文件系統(tǒng) 中,會有目錄(Directory )的概念,有一部分某些性質(zhì)相同的文件被放在同一個(gè)目錄下面,目 錄中也可以有子目錄。相應(yīng)的,在Flash中,Movie Clip被聲明成對象后,就充當(dāng)起了目錄的角色。所以在 MovieClip中的物件被聲明成了對象后,就相當(dāng)于目錄中的文件一樣,被稱為是對 象中的對象。

34、當(dāng)然在 Movie Clip中也可以再包含 Movie Clip,所以,目錄中的目錄的情況在 Flash的多層式對象結(jié)構(gòu)中也會出現(xiàn)??匆粋€(gè)例子也許會更清楚一些:在圖1-5中,舞臺是第一層,是根,在舞臺上有 MC1和MC2兩個(gè)MC對象,以及一個(gè)Graphics Symbol對象GS1,MC1和MC2就形成了第二層;在MC1中又有GS2和GS3兩個(gè)Graphics Symbol 對象,MC2中還有一個(gè) MC3對象,它形成了第三層; MC3中有一個(gè)GS4,它是第四層。如何在ActionScript中來表示這些對象的絕對路徑?這就需要用到點(diǎn)符號。點(diǎn)符號的作用和文件系統(tǒng)中的目錄分隔符“ /” (UNIX

35、)或“”(Windows)類似。層第三層第四層圖1-5根對象不用聲明,在Flash ActionScript中可以直接使用_root關(guān)鍵字來表示。關(guān)于_root關(guān)鍵字將在下面的章節(jié)中詳細(xì)說明。MC1,MC2和GS1對象的絕對路徑分別是:root.MC1a=_root.MC2.MC3.GS4.property;_root.MC2.MC3.GS4.property=b;_root.MC2.MC3.GS4.Method();parent 關(guān)_root.MC2_root.GS1GS2, GS3和MC3對象的絕對路徑分別是:_root.MC1.GS2_root.MC1.GS2_root.MC2.MC3G

36、S4對象的絕對路徑是: _root.MC2.MC3.GS4結(jié)合上一小節(jié)說過的概念來更進(jìn)一步地講,如果GS4有一個(gè)屬性property,一個(gè)方法 Method(),我們可以這樣訪問:/讀取GS4對象的屬性property中的值并賦給變量 a/將變量b中的值賦給GS4對象的屬性property/調(diào)用GS4對象的Method()方法使用點(diǎn)符號使得訪問對象的層次十分清晰,這也是所有面向?qū)ο笳Z言的特點(diǎn)。在理解了Acti on Script的多層對象和文件系統(tǒng)的目錄結(jié)構(gòu)的相似性后,就要了解一下在ActionScript編程中和對象層次關(guān)系非常密切的三個(gè)關(guān)鍵詞_root,_parent和this 了。1._

37、root關(guān)鍵詞,用來表示根對象一一舞臺不管程序放在哪一個(gè)層級的對象中,都可以使用_root關(guān)鍵詞來引用根對象。還是和文件系統(tǒng)對應(yīng),_root這個(gè)關(guān)鍵詞就相當(dāng)于/ ( UNIX )或(Windows )在文件系統(tǒng)中的作用。在上面的一些 關(guān)于對象的絕對路徑的例子中,都是以_root關(guān)鍵詞開始的。記住,F(xiàn)lash ActionScript中所有對象都在_root根對象(舞臺Stage)中。2._parent關(guān)鍵詞,用來表示上一層的對象_parent關(guān)鍵詞的作用就和文件系統(tǒng)中的 .”(回上一層)相似。在 Flash中,ActionScript代 碼被存放的對象路徑就是執(zhí)行這段代碼時(shí),默認(rèn)的當(dāng)前對象路徑

38、。例如,將Acti on Script代碼放在GS2中,這樣在這段代碼執(zhí)行的時(shí)候,它的默認(rèn)路徑就是 _root.MC1.GS2。如果要在 MC2對象的ActionScript中引用GS3對象,可以這樣寫:_parent.GS3當(dāng)然也可以使用_root關(guān)鍵詞:_root.MC1.GS3_pare nt指的是上一層的對象,所以如果要引用上一層對象的屬性或方法,也可以使用鍵詞。例如,在 GS2 中引用 MC1 的 property 屬性和 Method() 方法如下:a=_pare perty;_pare nt.Method();3. this關(guān)鍵詞this關(guān)鍵詞是用得最多的關(guān)鍵詞,它表

39、示當(dāng)前的對象,作用類似于文件系統(tǒng)中的“.”(當(dāng)前目錄)。例如,在GS2對象中引用自己的屬性property,雖然可行,但是不必要這樣使用:a=_root.MC1.GS2.property;或a=_pare nt.GS2.property;因?yàn)楫?dāng)前對象就是 GS2,所以可以使用this關(guān)鍵詞:a=perty;這樣做非常簡練和方便。同樣的道理,在調(diào)用當(dāng)前對象的方法時(shí),也可以一樣使用this關(guān)鍵詞。例如,在 GS對象中調(diào)用 GS2的Method()方法:this.Method();1.4對象的屬性和方法(1)在Flash中,常用到的對象都是Graphics Symbol或Movie

40、Clip等物件實(shí)例化(Instanee)后形成的。這種對象的數(shù)據(jù)類型屬于前面所講的實(shí)例型。由于都是實(shí)例型對象,所以其原型(ProtoType)是一樣的。這也就意味著,它們會從同一個(gè)原型處繼承相同的屬性和方法。所以對于這些對象來 說,它們有著許多共同的基礎(chǔ)屬性和方法。1.4.1一般對象屬性表1-3是實(shí)例型對象所共有的屬性的列表。表1-3實(shí)例型對象共有的屬性列表屬 性 名定義_alpha透明度,以百分比的形式表示,100%為不透明,0%為透明_currentframe當(dāng)前Movie Clip實(shí)例所播放的幀序號_droptarget返回最后一次被鼠標(biāo)拖曳的Movie Clip 或Graphics S

41、ymbol實(shí)例的名稱_focusrect當(dāng)使用Tab鍵切換焦點(diǎn)時(shí),按鈕符號實(shí)例是否顯示黃色的外框,默認(rèn)顯示黃色的外框,當(dāng)設(shè)置為0時(shí),將以按鈕符號的 Up姿態(tài)來顯示_framesloaded當(dāng)前已經(jīng)有多少幀動畫被下載到了用戶的客戶端_heightMovie Clip 或Graphics Symbol實(shí)例的高度,以像素為單位_highqualityFlash動畫的顯示質(zhì)量設(shè)置:1為低,2為高,3為最好_name返回Movie Clip 或Graphics Symbol實(shí)例的名稱_quality返回當(dāng)前Flash動畫的播放質(zhì)量_rotationMovie Clip 或Graphics Symbol實(shí)

42、例相對于垂直方向旋轉(zhuǎn)的角度_soundbuftimeFlash中的聲音在播放之前要經(jīng)過預(yù)下載然后播放,這個(gè)屬性說明預(yù)下載的時(shí)間_target用于指定 Movie Clip 或Graphics Symbol符號實(shí)例精確的字符串,在使用 tellTarget 時(shí)常用到_totalframes返回整個(gè)動畫或 Movie Clip 或Graphics Symbol實(shí)例在時(shí)間線上所有幀的數(shù)量_url返回該.swf文件的完整路徑名稱_visible設(shè)置Movie Clip 或Graphics Symbol實(shí)例是否顯示,1為顯示,0為隱藏_widthMovie Clip 或Graphics Symbol實(shí)例

43、的寬度,以像素為單位_xMovie Clip 或Graphics Symbol實(shí)例的中心點(diǎn)與其所在舞臺的最左側(cè)之間的水 平距離,Movie Clip 或Graphics Symbol實(shí)例在移動的時(shí)候,會動態(tài)地改變這 個(gè)值,單位是像素_xmouse返回鼠標(biāo)指針相對于舞臺最左側(cè)的水平距離_xscaleMovie Clip 或Graphics Symbol實(shí)例相對于其原樣的實(shí)際寬度的百分比_yMovie Clip 或Graphics Symbol實(shí)例的中心點(diǎn)與其所在舞臺的最上端之間的垂 直距離,Movie Clip 或Graphics Symbol實(shí)例在移動的時(shí)候,會動態(tài)地改變這 個(gè)值,單位是像素_

44、ymouse返回鼠標(biāo)指針相對于舞臺最上端的垂直距離_yscale電影片斷符號實(shí)例相對于其原樣的實(shí)際高度的百分比1.4.2Action 指令在這一小節(jié)將會介紹在 ActionScript中常用到的控制實(shí)例對象的Action指令。1. gotoAndPlay(scene,frame);跳轉(zhuǎn)到指定幀并繼續(xù)播放。scene參數(shù)是可選項(xiàng),指定要跳轉(zhuǎn)到的場景,如果不使用,則默認(rèn)為當(dāng)前場景。frame參數(shù)指定了要跳轉(zhuǎn)到的幀在場景中的序號。例:gotoAndPlay(5); /跳到第5幀并繼續(xù)播放則默認(rèn)為Key對象中列出的2.gotoAndStop(scene,frame);跳轉(zhuǎn)到指定幀并停止播放。scene

45、參數(shù)是可選項(xiàng),指定要跳轉(zhuǎn)到的場景,如果不使用,當(dāng)前場景。frame參數(shù)指定了要跳轉(zhuǎn)到的幀在場景中的序號。例:gotoAndStop(5); /跳到第5幀并停止3.on(mouseEvent) statement;處理程序。當(dāng)鼠標(biāo)或鍵盤事件發(fā)生時(shí)響應(yīng)。參數(shù)statement mouseEvent事件激活后要執(zhí)行的程序段。mouseEve nt可以是下列參數(shù):p press鼠標(biāo)在按鈕上時(shí)左鍵被按下。疔 release鼠標(biāo)在按鈕上時(shí)左鍵被松開。疔 releaseOutside鼠標(biāo)不在按鈕上時(shí)左鍵被松開。疔 rollOver鼠標(biāo)滑過按鈕。rollOut鼠標(biāo)從按鈕上移出。彳 dragOver鼠標(biāo)在按鈕上

46、時(shí)左鍵被按下,按住后鼠標(biāo)移出按鈕范圍,然后又移回到按鈕上。彳 dragOut鼠標(biāo)在按鈕上時(shí)左鍵被按下,按住后鼠標(biāo)移出按鈕范圍。療 keyPress ( “ key ”)指定的鍵被按下。指定鍵的鍵值的選取可以參見附錄B鍵和鍵值,或者參考在 各鍵的屬性。在下面的例子中,當(dāng)鼠標(biāo)左鍵在按鈕上被按下時(shí)會激活startDrag動作:on( press) startDrag(_root.MC1);4.play();開始播放動畫或者 Movie Clip 。例:this.stop(); /開始播放當(dāng)前的 Movie Clip5.stop();停止播放動畫或 Movie Clip 。例:this.stop();

47、 /停止播放當(dāng)前的 Movie Clip6.stopAllSounds();停止播放所有的聲音。7.fscommand (command,arguments);對Flash播放器下達(dá)指令以及向 JavaScript傳遞參數(shù)。comma nd參數(shù)實(shí)現(xiàn)Flash播放器所下的指令,argume nts參數(shù)則是下達(dá)的指令的參數(shù)。具體的指 令和參數(shù)如表1-4所示。表1-4 fscommand具體的指令和參數(shù)命令參數(shù)使用說明allowscaletrue/false設(shè)置true后,播放器將以1:1的大小播放動畫,也就是說播放器的 窗口變小則動畫也變小相同的比例。設(shè)置false ,動畫將保持原有的大小,不管播

48、放器窗口如何變化Exec應(yīng)用程序的路徑將參數(shù)設(shè)置成一個(gè)外部應(yīng)用程序的文件名,播放器將執(zhí)行外部應(yīng)用 程序fullscreentrue/false設(shè)置true后,動畫將全屏播放,設(shè)置false后,動畫播放器將回到窗口播放模式QuitNone關(guān)閉播放程序showmenutrue/false設(shè)置true后,在播放器中,點(diǎn)擊鼠標(biāo)右鍵,將顯示控制菜單,設(shè)置false后,將不會顯示控制菜單trapallkeystrue/false設(shè)置true后,播放器將屏蔽熱鍵,設(shè)置false后,播放器將使熱鍵有效1.4對象的屬性和方法8.getURL(url ,windows);打開超文本連接。參數(shù) url是設(shè)置調(diào)用網(wǎng)頁

49、網(wǎng)址,可選參數(shù) windows指定了在哪一個(gè) HTML框 架中打開超文本連接,如果不使用這個(gè)參數(shù)則在當(dāng)前窗口打開超文本連接。下文中的“”都和這里一樣,表示該參數(shù)可選。9.loadMovie(url ,locati on /target, variables);將另一個(gè)SWF文件加載到動畫或某一個(gè)Movie Clip中。參數(shù)url是需要載入的swf的文件位置,location/target是swf載入后在動畫中的深度或位置, variables是表示是否需要傳遞參數(shù),有post和get兩種選項(xiàng)。例子:比如我們需要載入 myLoadMovieTest.swf 影片到根場景的MC1上去,就用 loa

50、dMovie(myLoadMovieTest.swf,_root.MC1);10. unloadMovie(location);把以前曾載入到指定深度層次的Flash動畫卸載。參數(shù)location是要卸載的電影剪輯實(shí)體的深度層次。下面的例子會把主動畫卸載,留下空白的舞臺:uni oadMovie(_root);當(dāng)瀏覽者按下寫有下列代碼的按鈕時(shí),會把第 15深度層次的動畫卸載:on( press) un loadMovie(_level15);11.duplicateMovieClip(target, newname, depth);把當(dāng)前的Movie Clip復(fù)制成一個(gè)新的 Movie Cli

51、p。不管原來的 Movie Clip已經(jīng)播放到第幾幀, 新的Moive Clip都將從第1幀開始播放,原Movie Clip中的變量將不會被復(fù)制。當(dāng)原Movie Clip被刪除時(shí),復(fù)制的Movie Clip也會被刪除。使用removeMovieClip()方法可以刪除用 duplicateMovieClip()方法復(fù)制生成的 Movie Clip 。target指明了要將當(dāng)前的Movie Clip復(fù)制到的目標(biāo)路徑。newname指明了復(fù)制后新的Movie Clip的名字。depth是復(fù)制層次,就像時(shí)間線(Timeine)上的Layer層級一樣,復(fù)制對象也有自己的層次??梢詫⒉煌瑢ο髲?fù)制到不同的

52、層次中,形成遮擋的效果。注意:復(fù)制的層次和時(shí)間線的Layer層級又是完全不同的概念。每一個(gè)復(fù)制層次只能放一個(gè)復(fù)制的對象,如果兩個(gè)不同對象被復(fù)制到同 一復(fù)制層次,則后復(fù)制進(jìn)來的對象會取代前一個(gè)對象。例子:鼠標(biāo)按下后,把GS1對象復(fù)制到_root.MC1中,復(fù)制層次1,新的對象名為 newInstanee。on (release) duplicateMovieClip (_root.MC1, n ewI nsta nee, 1);12.onClipEvent(movieEvent). 在對Movie Clip或Graphics Symbol對象指定的事件發(fā)生時(shí)響應(yīng)。參數(shù)movieEve nt是和電

53、影剪輯實(shí)體相聯(lián)系的一個(gè)動作事件,它可以是下列值:疔 load電影剪輯實(shí)體在時(shí)間軸(timeli ne)中出現(xiàn)時(shí)激活事件。:un load電影剪輯實(shí)體在時(shí)間軸(timeli ne)中卸載后的第一幀時(shí)激活事件,在這一幀里,un load比其他任何事件都要優(yōu)先響應(yīng)。嘆en terFrame在播放到某一幀時(shí)激活事件,在這一幀里,OnEn terFrame會在其他任何事件之后才響應(yīng)。mouseMove 只要鼠標(biāo)移動就激活事件。使用_xmouse和_ymouse屬性可以確定當(dāng)前鼠標(biāo)的坐標(biāo)。QmouseDow n鼠標(biāo)左鍵按下時(shí)激活事件。彳mouseUp 鼠標(biāo)左鍵松開時(shí)激活事件。彳keyDow n 當(dāng)某一鍵被

54、按下時(shí)激活事件。使用Key.getCode方法可以獲得最后一個(gè)被按下的鍵的信息。彳keyUp 當(dāng)某一鍵被松開時(shí)激活事件。使用 Key.getCode方法可以獲得最后一個(gè)被按下的鍵的信息。:data 在loadVariables 或loadMovie 動作讀入數(shù)據(jù)時(shí)激活事件。當(dāng)指定了一個(gè)loadVariables動作后,data事件只在讀入最后一個(gè)變量時(shí)響應(yīng)一次。當(dāng)指定了一個(gè)loadMovie 動作后,data事件會每讀入一段數(shù)據(jù)就響應(yīng)一次,直到把數(shù)據(jù)全部載入。例1:下面的例子將在加載電影剪輯的時(shí)候讀入外部的Script程序文件:on ClipEve nt(load) #in clude myS

55、cript.as例2:在下面的例子中,onClipEvent使用了 keyDown事件和key.getCode。keyDown事件經(jīng)常和一個(gè)或幾個(gè) Key對象的方法或?qū)傩赃B用;key.getCode被用來獲取瀏覽者最后一次按下的鍵 的鍵值,然后再和Key對象的RIGHT和LEFT屬性做比較來執(zhí)行不同的程序:on ClipEve nt(keyDow n) if (Key.getCode() = Key.RIGHT) _pare nt. nextFrame(); else if (Key.getCode() = Key.LEFT)_pare nt.prevFrame();例3:下面的例子使用mou

56、seMove事件,同時(shí)使用 xmouse和ymouse屬性獲取鼠標(biāo)當(dāng)前的坐標(biāo)值:on ClipEve nt(mouseMove) stageX=_root.xmouse;stageY=_root.ymouse;13. removeMovieClip(target);刪除由 duplicateMovieClip , attachMovie 或 duplicateMovie 方法創(chuàng)建的 Movie Clip 或 Graphics Symbol 對象。參數(shù)target是由duplicateMovieClip 創(chuàng)建的目標(biāo) Movie Clip或Graphics Symbol對象名,或是由 attach

57、Movie 或 duplicateMovie 方法創(chuàng)建的 Movie Clip 或 Graphics Symbol 對象的實(shí)體名。14. setProperty(target, property, value/expression);設(shè)置指定的實(shí)例對象中屬性的值。參數(shù)target是目標(biāo)對象,property是要設(shè)置的屬性,value/expression是要設(shè)定的屬性的值,它可以是一個(gè)值或是一個(gè)表達(dá)式。例子:鼠標(biāo)按下后,設(shè)定MC1對象的不透明度為30%。on( release) setProperty(_root.MC1, _alpha, 30);15.startDrag(targat ,lo

58、ck,left,top,right,bottom);開始用鼠標(biāo)拖動 MovieClip或Graphic Symbol對象。參數(shù)targat是要拖曳的對象,lock參數(shù)用 來確定是否鎖定中心拖曳,參數(shù)left, top, right, bottom是拖曳的范圍的坐標(biāo)。在這里,lock和left, top, right, bottom參數(shù)都是可選的。例:startDrag(_root.MC1);開始拖動 _root.MC1 對象16.stopDrag(target);停止用鼠標(biāo)拖動 MovieClip或Graphic Symbol對象。參數(shù)targat是被拖曳的對象。例:stopDrag(_roo

59、t.MC1); /停止拖動 _root.MC1 對象17. updateAfterEve nt(movie clip eve nt);當(dāng)參數(shù)中指定的動作發(fā)生后,刷新屏幕(取決于動畫設(shè)定中的每秒播放幀數(shù)項(xiàng))。在drag動作中同時(shí)使用鼠標(biāo)移動來激活updateAfterEvent,刷新屏幕將不會造成屏幕的閃爍。參數(shù)movie clip event可以指定為下列的一個(gè)值作為參數(shù):彳 mouseMove 判斷鼠標(biāo)是否移動,使用 _xmouse和_ymouse屬性能夠確定當(dāng)前鼠標(biāo)的坐標(biāo)。彳mouseDow n判斷鼠標(biāo)左鍵是否按下。彳mouseUp 判斷鼠標(biāo)左鍵是否松開。V keyDow n 判斷某一鍵是

60、否被按下,使用 Key.getCode方法能夠獲得最后一個(gè)被按下的鍵的信息。J keyUp 判斷某一鍵是否被松開,使用 Key.getCode方法能夠獲得最后一個(gè)被按下的鍵的信息。18. trace(expression);當(dāng)調(diào)試一個(gè)動畫的時(shí)候,trace動作會把要調(diào)試的語句的結(jié)果在輸出窗口中輸出。在調(diào)試的時(shí)候使用trace,能夠在輸出窗口記錄下所要得到的信息或是檢查中間變量的值的變化情況。trace動作和JavaScript中的alert函數(shù)非常相似。參數(shù)expression是要輸出的值、變量或者表達(dá)式。例子:trace(i); /輸出變量i的值trace(abcdef);/ 輸出字符串a(chǎn)b

溫馨提示

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

評論

0/150

提交評論