第09章動畫制作課件_第1頁
第09章動畫制作課件_第2頁
第09章動畫制作課件_第3頁
第09章動畫制作課件_第4頁
第09章動畫制作課件_第5頁
已閱讀5頁,還剩170頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第九章ActionScript編程基礎 ActionScript介紹 ActionScript的術語 ActionScript的語法 數據類型 變量變量 函數與運算符函數與運算符 事件與動作事件與動作 條件循環控制條件循環控制 第9章 ActionScript編程基礎 制作交互動畫 應用舉例魔力彩色球 本章小結 習題九第9章 ActionScript編程基礎 ActionScript的中文譯名為“動作腳本”,它是Flash專用的一種編程語言,與JavaScript有著相似的結構,都是采用面向對象的編程思想編寫的。使用ActionScript,用戶可以控制動畫的播放和停止、指定對鼠標動作的響應、

2、實現網頁的鏈接、制作精彩的游戲以及創建網頁等,大大增強了Flash動畫的交互性。在Flash 8中,添加ActionScript的操作步驟如下:(1)選中要添加ActionScript的按鈕、幀或者影片剪輯。(2)選擇“窗口”“動作”命令,打開動作面板,如圖9.1.1所示。第一節 ActionScript介紹第9章 ActionScript編程基礎 圖9.1.1 動作面板動作列表程序區第9章 ActionScript編程基礎 (3)在動作列表中找到所需的Action(動作),雙擊鼠標左鍵,將其添加到程序區中(見圖9.1.2),然后進行相關的設置即可。注意:在編寫過程中,對于所添加的Action

3、Script,系統會檢查其語法是否正確,并提示用戶如何修改。圖9.1.2 添加動作第9章 ActionScript編程基礎 ActionScript和其他腳本語言一樣,也要根據特定的語法規則,使用專門的術語。下面將列出一些重要的ActionScript術語,并做簡要的介紹。(1)Action(動作):動作是在播放動畫時指示動畫文件執行某些任務的語句。例如,Stop動作用于停止動畫的播放。(2)Events(事件):事件指正在播放動畫時發生的動作。例如,鼠標的經過、單擊與離開,鍵盤上某鍵的敲擊等都可作為事件。第二節 ActionScript的術語第9章 ActionScript編程基礎 (3)O

4、bjects(對象):對象是屬性和方法的集合,它允許用戶訪問某種類型的信息。例如,用戶通過Date()對象可以訪問來自系統時鐘的信息。(4)Variables(變量):變量是一種可以保留任何數據類型值的標識符。它可以被創建、改變或者更新。例如,在以下代碼中等號左邊的標識符就是變量。a=50;width=25;hername= csquare;第9章 ActionScript編程基礎 (5)Properties(屬性):屬性是對象的某種性質,例如,_visible是所有影片剪輯的一個屬性,用于定義其是顯示還是隱藏。(6)Arguments(參數):參數可以把值傳遞給函數。例如,在以下代碼中參數f

5、irstName和hobby把值傳遞給了welcome()函數。function welcome(firstName, hobby) welcomeText = “Hello, ” + firstName + “I see you enjoy ” + hobby;第9章 ActionScript編程基礎 (7)Classes(類):類是一種數據類型,用于定義新的對象,可以通過定義一個構造函數來定義類。(8)Constants(常量):常量是不可改變的元素。例如,常量Key.TAB總是用來代表鍵盤上的Tab鍵。(9)Constructors(結構體):結構體是用于定義類的函數。例如,在以下代碼中

6、通過創建函數Circle()來定義一個新的圓類。function Circle(x, y, radius)this.x = x;this.y = y;this.radius = radius;第9章 ActionScript編程基礎 (10)Datatypes(數據類型):數據類型用于描述變量或動作腳本元素可以包含信息的種類,例如,動作腳本數據類型包含字符串、數字、布爾值、對象、影片剪輯、函數、空值和未定義。(11)Expressions(表達式):表達式是語句中能夠產生一個值的任意部分。例如,2+2就是一個表達式。(12)Functions(函數):函數是可以傳送參數并能返回值的可重用代碼塊

7、。例如函數getVersion()可以返回當前正在播放動畫的Flash播放器的版本。(13)Handlers(事件處理函數):事件處理函數是用于管理諸如mouseDown或load等事件的特殊函數。第9章 ActionScript編程基礎 (14)Identifiers(標識符):標識符是用于識別某個變量、特性、對象、函數或方法的名稱。它的第一個字符必須是字母、下畫線或貨幣符號,其后的字符必須是字母、下畫線、貨幣符號或數字。例如,firstQuestion是一個合法的標識符,而10 xyz不是合法的標識符。(15)Instances(實例):實例是屬于某個類的對象。一個類可以產生若干個類的實例

8、,且每個實例都將包含該類的所有特性和方法。例如,所有的影片剪輯都是MovieClip類的實例,因此可以將MovieClip類的方法或屬性用于任何影片剪輯實例。第9章 ActionScript編程基礎 (16)Instancenames(實例名稱):實例名稱是腳本中用來表示影片剪輯實例或按鈕實例的唯一名稱。例如,在以下代碼中實例名稱為csquare的影片剪輯實例復制了8次。do duplicateMovieClip(“csquare”,“csquare”+i,i)i=i+1;while(i=8);(17)Keywords(關鍵字):關鍵字是具有特定意義的保留字。例如,var是一個用來聲明本地變量

9、的關鍵字。第9章 ActionScript編程基礎 (18)Methods(方法):方法是分配給一個對象的函數。一個函數被分配之后,它可作為對象的方法被調用。例如,在以下代碼中clear變成了controller對象的方法。function Reset()x_pos = 0;x_pos = 0;controller.clear = Reset;controller.clear();(19)Operators(運算符):運算符是通過一個或多個值計算新值的符號。例如,加法運算符用于把兩個或多個值加到一起,產生一個新值。第9章 ActionScript編程基礎 (20)Target paths(目標

10、路徑):目標路徑是變量、對象和影片剪輯實例的名稱所組成的表達結構。使用目標路徑可以獲取某個變量的值。例如,以下代碼就是指向影片剪輯stereoControl中的volume變量的目標路徑。_root.stereoControl.volume第9章 ActionScript編程基礎 下面列出ActionScript的一些通用語法規則,用戶必須遵守這些語法規則才能創建可正確編譯和運行的腳本。(1)區分大小寫。在Flash 8中,所有的關鍵字、類名、變量、方法名、外部腳本等均區分大小寫。例如,book和Book將被視為不同內容。(2)點語法。在ActionScript中,點“.”被用于指明某個對象或

11、影片剪輯的屬性和方法,也可用于標識影片剪輯或變量的目標路徑。點語法表達式以跟有一個點的對象或影片剪輯的名稱開始,以要指定的屬性、方法或者變量作為結束。例如,在以下代碼中_width指明cs影片剪輯的寬度。cs._width;第三節 ActionScript的語法第9章 ActionScript編程基礎 (3)大擴號。ActionScript使用大括號“”劃分語句塊,例如:onClipEvent(load) top=_y; left=_x; right=_x; bottom=_y+100;(4)分號。ActionScript語句使用分號“;”作為結束,如果將分號省略,Flash仍然能夠成功地編譯

12、腳本,例如:Mouse.hide()startDrag(cs, true)第9章 ActionScript編程基礎 (5)小括號。當用戶定義一個函數時,要把參數放置在小括號“( )”內,例如:myFunction(“csquare”,20,true);另外,可以使用小括號來改變ActionScript的優先級。(6)注釋。通過在腳本中添加注釋,將有助于理解用戶關注的內容,以及向其他開發人員提供信息。要指示某一行或一行的某一部分是注釋,應在該注釋前加兩個斜杠(/),例如:function Line(x1,y1,x2,y2)/定義Line函數第9章 ActionScript編程基礎 注意:注釋在程

13、序區中以暗色顯示,如圖9.3.1所示。圖9.3.1 注釋在程序區中以暗色顯示第9章 ActionScript編程基礎 (7)關鍵字。ActionScript保留了一些標識符作為內置對象、函數等的標識。這些標識符就是關鍵字,用戶在編程過程中,不能用這些關鍵字作為變量、函數或標簽的標識。第9章 ActionScript編程基礎 在Flash 8中,內置了基本數據類型和引用數據類型兩種數據類型。其中,基本數據類型是指字符串、數字、布爾數等,它們都有一個不變的值,可以保存它們所表示元素的實際值;引用數據類型是指影片剪輯或對象等,它們的值可以改變,所以它們所包含的是對元素實際值的引用。下面對Action

14、Script中的各種數據類型進行介紹。(1)MovieClip(影片剪輯):影片剪輯是Flash應用程序中可以播放動畫的元件,它們是唯一一種可以引用圖形元素的數據類型。第四節 數據類型第9章 ActionScript編程基礎 (2)Objcet(對象):對象是屬性的集合,每個屬性都有相應的名字和值,屬性值可以是任何一種數據類型,甚至可以是對象數據類型,從而使對象相互包含即所謂的嵌套。可以使用內置動作腳本對象來訪問和處理特定種類信息。例如,可以通過Math對象的方法來對傳遞給它的數字進行數學運算。例如,下面的語句使用Math對象的Sqrt方法對數字100進行求平方根運算,并將運算的結果賦給變量s

15、quareRoot:squareRoot=Math.sqrt(100);另外,動作腳本的電影片段對象具有可以控制舞臺上的電影片段實例的方法,下面語句使用了play和nextFrame方法:第9章 ActionScript編程基礎 mcInstanceName.play();mc2InstanceName.nextFrame();(3)Boolean(布爾值):在動作腳本中布爾值經常和邏輯運算符或比較運算符一起使用,用于進行比較和控制一個程序腳本的流程。布爾值有且僅有true和false兩種,在需要時,ActionScript也可以將true和false轉化成1和0。例如,在下面的例子中,如果變

16、量Name和變量Password的值都為true,則電影片段就開始播放: onClipEvent(enterFrame) if (Name=true)&(password=true) play()第9章 ActionScript編程基礎 (4)Number(數字):數據類型中的數字是一個雙精度的浮點型數字。可以使用算術運算符來處理數字,也可使用內置的Math和Number類的方法來處理數字。(5)String(字符串):字符串是由字母、數字、標點等組成的字符序列,應用字符串時要將其放在單引號或雙引號中。例如,下面語句中的“chen”就是一個字符串:firstname=“chen”;可以

17、使用“+”運算符連接兩個字符串,此時,動作腳本會精確地保留在字符串兩端出現的空格。例如,下面的語句執行后,“introduce”就是“Im chen”。firstname=“chen”;introduce=Im+firstname;第9章 ActionScript編程基礎 由于字符串以引號作為開始和結束的標記,所以要想在一個字符串中包括一個單引號或雙引號,需要在其前面加上一個反斜杠“”,這就是所謂的將字符轉義。在動作腳本中還有其他的一些字符可以被轉義,如表9.1所示。第9章 ActionScript編程基礎 表9.1 轉義字符轉義字符轉義結果bBackspacef走紙換頁n換行符r回車符t制表

18、符(Tab)雙引號單引號反斜線符號000377一個八進制字符,占一個字節x00 xFF一個十六進制字符,占一個字節u0000uFFFF一個十六進制的16位Unicode字符,占兩個字節第9章 ActionScript編程基礎 (6)Null(空值):Null表示空值,可以在以下4種情況下使用: 1)變量尚未接收到值。 2)變量不再包含值。 3)作為函數的返回值時,函數沒有可以返回的值。 4)作為函數的參數時,省略了一個參數。(7)Undefined(未定義):Undefined表示未定義的數據類型的值,用于尚未分配值的變量。第9章 ActionScript編程基礎 變量是存儲信息的容器,容器本

19、身總是不變的,但內容可以改變。當播放動畫時,通過變量可以記錄和保存用戶操作的信息,記錄動畫播放時改變了的值,或者判斷某些條件是真還是假。當首次定義一個變量時,最好為該變量指定一個已知值,即對變量進行初始化操作,從而使用戶能夠更容易地跟蹤和比較變量的值。第五節 變 量第9章 ActionScript編程基礎 ActionScript中的變量可以保存所有類型的數據,包括String,Number,Boolean,Object以及MovieClip等,當某個變量在一個腳本中被賦值時,變量包含的數據類型將影響變量值的改變。一、變量的命名規則為變量命名必須遵守以下規則:(1)變量名必須是一個標識符。(2

20、)變量名不能是一個關鍵字或布爾值(true或false)。(3)變量名在它的作用范圍內必須是唯一的。二、變量的輸入在ActionScript中,不需要明確地定義一個變量要保存為何種數據類型。當變量被賦值時,Flash會自動確定這個變量的第9章 ActionScript編程基礎 數據類型。例如: x=7;y=“name”;在表達式“x=7”中,Flash 8會計算操作符右邊的元素,并且確定x是一個數值型變量。在表達式“y=”name“”中,系統會把y的類型改為字符串型。當表達式需要時,ActionScript還會自動變換變量的類型,例如,當把一個值傳遞給trace動作時,trace動作會自動將接

21、收到的值轉換成字符串。可以使用這個動作來調試腳本、跟蹤變量的值以及跟蹤腳本的分支流向。第9章 ActionScript編程基礎 在含有操作符的表達式中,ActionScript會根據需要變換數據類型,例如,當“+”操作符被用于一個字符串中時,ActionScript會自動將另一個數據的類型轉換為字符串(如果它不是字符串),例如:“Next in line,number”+7ActionScript會自動將數字7轉換成字符串“7”,并將其加載到第一個字符串的后面形成一個更長的字符串:“Next in line,number7”。第9章 ActionScript編程基礎 三、變量的作用范圍變量的作

22、用范圍是指能夠識別和引用該變量的區域。在ActionScript中,變量可以是全局變量和局部變量。全局變量可以在所有的時間軸中共享,而局部變量僅在它所在的代碼塊中有效。用戶可以在腳本中用var語句聲明一個局部變量,例如,在以下代碼中,i被用做局部變量。Function makeDays()var ifor(i =0; i monthArraymonth;i+)第9章 ActionScript編程基礎 _root.Days.attachMovie(“DayDisplay”,i,i+2000);_root.Daysi.num=i+1;_root.Daysi._x=column*_root.Days

23、i._width;_root.Daysi._y=row*_root.Daysi._height;column=column+1;if(column=7)column=0;row=row+1;第9章 ActionScript編程基礎 使用局部變量可以有效地防止名稱的沖突,所以被大量地使用。但在有些情況下必須使用全局變量,例如,要在一個代碼塊中引用另一個代碼塊中的變量,或者要在整個動畫中傳遞某個變量的值,在這些情況下,全局變量將會發揮巨大的作用。四、變量聲明在Flash 8中,可以用set variables語句或賦值操作符(=)來聲明全局變量,用var語句聲明局部變量。其中,局部變量的作用范圍限

24、定在聲明它的代碼塊中,并在代碼塊結束時失效。第9章 ActionScript編程基礎 五、在腳本中使用變量要將變量在腳本中使用,首先必須在腳本中聲明這個變量,如果使用了未做聲明的變量,則將會得到一個錯誤值。另外,還可以在一個腳本中多次改變一個變量的值。變量包含的數據類型將對變量的改變方式產生影響。原始的數據類型,如字符串和數字等,將以值進行傳遞,也就是說變量的實際內容將被傳遞給變量。例如:在下面的程序中,x的值被設置為9,然后這個值被賦給y,隨后x的值被重新改變為90,但此時y仍然是9,因為y并不跟蹤x的值,它在此只是存儲x曾經傳遞給它的值。第9章 ActionScript編程基礎 var x

25、=9;var y=x;var x=90;又例如,變量ting包含一個基本數據類型的數字6,這個實際的值數字6被傳遞給了函數sqr,返回值為36。Function sqr (x) return x*x;var ting=6;var out=sqr (ting);其中變量ting中的值仍然是6,并沒有改變。第9章 ActionScript編程基礎 如果引用除電影片段以外的某個對象,則一旦被引用就不能再被刪除,這種引用稱為Hard Reference(硬引用);而對一個電影片段的引用則被稱為Soft Reference(軟引用),因為軟引用不能強令被引用的對象存在。第9章 ActionScript編

26、程基礎 在Flash 8中,函數指由一個變量按照一定的規則決定另一個變量的對應關系,運算符指對常量與變量進行運算的符號,表達式指用運算符將常量、變量和函數以一定的規則組織在一起的句子,下面分別對它們進行介紹。一、函數Flash 8提供了5種類型的函數,分別為通用函數、數值類函數、屬性類函數、字符串類函數和多字節字符函數。1通用函數通用函數包括eval,getTimer,false和true 4種,它們的功能如下:第六節 函數與運算符第9章 ActionScript編程基礎 (1)eval:獲取某一變量的值,或者返回某一對象。(2)getTimer:獲取計算機的系統時間。(3)false:獲取布

27、爾非值(0)。(4)true:獲取布爾真值(1)。2數值類函數數值類函數包括int和random兩種,它們的功能如下:(1)int:把十進制數值強制轉換成整數,即取整。(2)random:產生0到用戶指定數值間的隨機數。第9章 ActionScript編程基礎 3屬性類函數屬性類函數包括_alpha,_height,_name,_rotation,_visible,_width,_x,_y,_xscale,_yscale,_url和_current 12種,它們的功能如下:(1)_alpha:對象的透明度。(2)_height:對象的高度。(3)_name:對象實例的名稱。(4)_rotati

28、on:對象的旋轉角度。(5)_visible:顯示或隱藏對象。(6)_width:對象的寬度。(7)_x:對象的x軸坐標。(8)_y:對象的y軸坐標。第9章 ActionScript編程基礎 (9)_xscale:以百分比來縮放對象的寬度。 (10)_yscale:以百分比來縮放對象的高度。(11)_url:對象的鏈接地址。(12)_current:獲取當前幀的位置。4字符串類函數字符串類函數包括substring,length,ord和chr 4種,它們的功能如下:(1)substring:截取字符串的子串。(2)length:返回字符串的長度。(3)ord:將字符轉換成ASCII碼。(4)

29、chr:將ASCII碼轉換成相應的字符。第9章 ActionScript編程基礎 5多字節字符函數多字節字符函數包括mbsubstring,mblength,mbchr和mbord 4種,它們的功能如下:(1)mbsubstring:截取多字節字符串中的字串。(2)mblength:返回多字節字符串的長度。(3)mbchr:將操作數轉換成相應的ASCII碼多字節字符。(4)mbord:將多字節字符轉換成相應的ASCII碼數值。第9章 ActionScript編程基礎 二、運算符Flash 8提供了算術運算符、比較運算符、邏輯運算符、位運算符、等于和賦值運算符等多種運算符,下面分別進行介紹。1算

30、術運算符算術運算符包括加、減、乘、除和其他算術運算符,ActionScript中的算術運算符如表9.2所示。第9章 ActionScript編程基礎 算術運算符執行的運算+遞增1-遞減1*乘/除%求余數+自加-自減表9.2 算術運算符第9章 ActionScript編程基礎 2比較運算符比較運算符用于比較表達式的值并返回一個布爾值,ActionScript中的比較運算符如表9.3所示。表9.3 比較運算符比較運算符執行的運算大于=大于或等于第9章 ActionScript編程基礎 3邏輯運算符邏輯運算符用于比較兩個布爾值(true或false)并返回第3個布爾值,例如在邏輯與操作中,如果兩個操

31、作數都是true,則返回結果為true;如果執行的兩個操作數中有一個或兩個是false,則返回的結果為false。ActionScript中的邏輯運算符如表9.4所示。表9.4 邏輯運算符邏輯運算符執行的運算&邏輯與|邏輯或!邏輯非第9章 ActionScript編程基礎 4位運算符ActionScript中的位運算符如表9.5所示。表9.5 位運算符位運算符執行的運算&按位與|按位或按位異或按位非,即求補碼按位右移無符號按位右移,即左邊空位用0填補第9章 ActionScript編程基礎 5等于和賦值運算符ActionScript中的等于和賦值運算符如表9.6所示。表9.6

32、等于和賦值運算符等于和賦值運算符執行的運算等于和賦值運算符執行的運算=等于/=相除并賦值!=不等于=按位右移并賦值+=相加并賦值=無符號按位右移并賦值-=相減并賦值=按位異或并賦值*=相乘并賦值|=按位或并賦值%=求余并賦值&=按位與并賦值第9章 ActionScript編程基礎 當兩個或兩個以上的運算符在同一個表達式中被使用時,一些運算符與其他運算符相比有更高的優先級。例如,在以下的代碼中,括號里面的內容先執行,結果是8。 x=(24-20)*2;而在以下的代碼中,先執行乘法運算,結果是2。 x=8-2*3;如果兩個或兩個以上的運算符擁有同樣的優先級時,此時決定它們執行順序的就是運算

33、符的結合性了,結合性可以是從左到右,也可以是從右到左。例如,下面的兩個語句是等價的:第9章 ActionScript編程基礎 x=8*3*5; x=(8*3)*5;下面按優先級從高到低的排列,列出了所有運算符及其結合律,如表9.7所示。運算符說 明結合律+遞增1從右到左-遞減1從右到左按位“非”從右到左!邏輯“非”從右到左not邏輯“非”(Flash 4 樣式)從右到左+后遞增從左到右-后遞減從左到右表9.7 運算符優先級第9章 ActionScript編程基礎 ( )函數調用從左到右 數組元素從左到右.結構成員從左到右+前遞增從右到左-前遞減從右到左new分配對象從右到左delete取消分配

34、對象從右到左typeof對象類型從右到左void返回未定義值從右到左*乘號從左到右/除號從左到右%求余數從左到右+加號從左到右add字符串連接(原為 &)從左到右-減號從左到右續表1第9章 ActionScript編程基礎 續表2按位右移位從左到右按位右移位(無符號)從左到右小于從左到右大于從左到右=大于或等于從左到右instanceof是否為其實例從左到右lt小于(字符串版本)從左到右le小于或等于(字符串版本)從左到右gt大于(字符串版本)從左到右ge大于或等于(字符串版本)從左到右=等于從左到右!=不等于從左到右eq等于(字符串版本)從左到右第9章 ActionScript編程基

35、礎 ne不等于(字符串版本)從左到右&按位“與”從左到右按位“異或”從左到右|按位“或”從左到右&邏輯“與”從左到右and邏輯“與”(Flash 4)從左到右or邏輯“或”從左到右|邏輯“或”(Flash 4)從左到右?:條件從右到左=賦值從右到左*=, /=, %=, +=, -=, &=, |=, =, =, =復合賦值從右到左,逗號從左到右續表3第9章 ActionScript編程基礎 在Flash 8中,無論多么復雜的交互過程,都可以分解為兩個部分,即導致行為發生的原因和行為發生的內容。而行為發生的原因就是事件,行為發生的內容就是動作。一、事件在Flash 8中

36、,用戶可以通過兩種方式來觸發事件:一種是基于動作的,如單擊鼠標或按下鍵盤,即通常所說的“用戶觸發事件”;另一種是基于時間的,當動畫播放到某一時刻時,事件就會被觸發,即通常所說的“幀事件”。第七節 事件與動作第9章 ActionScript編程基礎 1用戶觸發事件用戶觸發事件的特點是對單擊鼠標或者按鍵等動作做出響應,下面簡單介紹一些用戶觸發事件。(1)press:當將鼠標指針移到按鈕上時,單擊鼠標左鍵發生動作。(2)release:當將鼠標指針移到按鈕上時,單擊并釋放鼠標左鍵發生動作。(3)rollOut:當將鼠標指針從按鈕上移過時發生動作。(4)rollOver:當將鼠標指針放置在按鈕上時發生

37、動作。(5)releaseOutside:當將鼠標指針在按鈕上按下鼠標左鍵,然后移至按鈕外釋放時發生動作。第9章 ActionScript編程基礎 (6)dragOut:當將鼠標指針在按鈕上按下鼠標左鍵,然后移至按鈕外時發生動作。(7)dragOver:當將鼠標指針在按鈕上按下鼠標左鍵,然后移至按鈕外后,又移至按鈕上時發生動作。(8)keyPress:當按下指定鍵時發生動作。(9)mouseMove:當移動鼠標時發生動作。(10)mouseDown:當單擊鼠標左鍵時發生動作。(11)mouseUp:當釋放鼠標左鍵時發生動作。(12)keyUp:當釋放某鍵時發生動作。(13)keyDown:當按

38、下某鍵時發生動作。第9章 ActionScript編程基礎 2幀事件定義幀事件是指為某個幀指定一個動作,當動畫播放到該幀時,將會響應事件,并執行指定的動作。例如,如果用戶需要控制一個包含兩個場景的動畫,當播放到“場景1”的第4幀時,開始播放“場景2”,然后在“場景2”播放結束后繼續從“場景1”的第5幀開始播放,直至“場景1”播放完畢后結束動畫,用戶可以進行以下的“幀事件”定義過程。(1)選中“場景1”的第4幀,在動作面板中添加以下代碼:gotoAndPlay(“場景2”,4);(2)選中“場景2”的最后一幀,在動作面板中添加以下代碼:gotoAndPlay(場景1,5);第9章 ActionS

39、cript編程基礎 二、動作動作是由一系列語句組成的程序代碼。在Flash 8中,內置了數百條的動作語句,通過它們可以實現非常強大的交互功能,下面介紹幾種常見的動作語句。1stop()語句stop()語句用于停止動畫的播放,該語句沒有參數。例如,以下代碼將制作一個停止按鈕。On(release)stop();第9章 ActionScript編程基礎 2play()語句play()語句用于使動畫從當前幀開始播放,該語句沒有參數。例如,以下代碼將制作出一個播放按鈕。On(press)play();3gotoAndPlay()語句gotoAndPlay()語句用于跳轉到某一幀或場景,并開始播放。其格

40、式如下:gotoAndPlay(場景,幀);參數的意義如下:第9章 ActionScript編程基礎 (1)場景:指定要轉到場景的名稱,如果在同一個場景中跳轉,可以省略該參數。(2)幀:指定要轉到的幀。例如,以下代碼將使動畫從第15幀開始播放。on (release) gotoAndPlay(15);4gotoAndStop()語句gotoAndStop()語句用于跳轉到某一幀或場景,并停止播放。其格式與參數同gotoAndPlay()語句。例如,以下代碼將使動畫跳轉至第5幀,并停止播放。第9章 ActionScript編程基礎 on (release) gotoAndStop (5);5st

41、opAllSounds()語句stopAllSounds()語句用于停止動畫中的所有聲音,而不影響其視覺效果,該語句沒有參數。例如,以下代碼將制作出一個關閉聲音的按鈕。On(press)stopAllSounds();第9章 ActionScript編程基礎 6nextScene()語句nextScene()語句用于跳轉并停止在下一場景的第1幀上,該語句沒有參數。其格式如下:nextScene();7prevScene()語句prevScene()語句用于跳轉并停止在上一場景的第1幀上,該語句沒有參數。其格式如下:prevScene();8trace()語句trace()語句用于獲取影片剪輯的

42、名稱、位置、大小和透明度等屬性。其格式如下:trace(目標.屬性);第9章 ActionScript編程基礎 參數的意義如下:(1)目標:影片剪輯實例的名稱。(2)屬性:實例的位置、大小和透明度等。例如,以下代碼將獲取名稱為cs的影片剪輯的位置、透明度和大小屬性。trace(cs._x);trace(cs._y);trace(cs._alpha);trace(cs.width);trace(cs.height);第9章 ActionScript編程基礎 9mouse.hide()語句mouse.hide()語句用于隱藏鼠標指針,該語句沒有參數。例如,以下代碼將實現隱藏鼠標指針的功能。onCl

43、ipEvent(load)mouse.hide();startDrag(this,true);10getURL()語句getURL()語句用于將指定的URL加載到瀏覽器窗口,或者將變量數據發送給指定的URL。其格式如下:getURL(網頁地址,窗口);參數的意義如下:第9章 ActionScript編程基礎 (1)網頁地址:鏈接網頁的地址,如http:/。(2)窗口:用于設置網頁打開的位置,有4種方式可以選擇。 1)_self:指定當前窗口中的當前框架。 2)_blank:指定一個新窗口。 3)_parent:指定當前框架的父級。 4)_top:指定當前窗口中的頂級框架。例如,以下代碼將使動畫

44、在用戶單擊賦予該動作的按鈕時,在新窗口中打開URL為的網頁。on(release)getURL(“http:/”,“_blank”);第9章 ActionScript編程基礎 11setProperty()語句setProperty()語句用于設置影片剪輯的大小、旋轉、位置、名稱和透明度等屬性。其格式如下:setProperty(目標,屬性,值);參數的意義如下:(1)目標:影片剪輯實例的名稱。(2)屬性:實例的位置、大小和透明度等。(3)值:指屬性的值。例如,以下代碼展示了一個按鈕事件,它將名為MMC的影片剪輯實例的透明度設置為50%。on(release)setProperty(“/MMC

45、”,_Alpha, “50”);第9章 ActionScript編程基礎 12duplicateMovieClip()語句duplicateMovieClip()語句用于影片剪輯的復制。其格式如下:duplicateMovieClip(目標,新名稱,深度);參數的意義如下:(1)目標:定義要復制影片剪輯實例的路徑。(2)新名稱:設置復制的影片剪輯實例的名稱。(3)深度:深度是一個數值,它表示影片剪輯實例副本與同一個影片層級中其他加載副本的相對堆疊深度。例如,以下代碼展示了一個按鈕事件,其作用是復制名為MMC的影片剪輯實例,并將復制出的MMCD放置在2中。第9章 ActionScript編程基礎

46、 在復制時,改變MMCD的x位置,以便它不會出現在原影片剪輯的上面。 on(release)duplicateMovieClip(“/MMC”,“MMCD”,2);setProperty(“/MMCD”,_x,“200”);13removeMovieClip()語句removeMovieClip()語句用于影片剪輯的刪除。其格式如下:removeMovieClip(目標);目標是指要刪除影片剪輯實例的路徑。例如,以下代碼展示了另一個按鈕上的鼠標事件,其作用是刪除名為MMCD的影片剪輯實例。第9章 ActionScript編程基礎 on(release)removeMovieClip(“/MMC

47、D”);14setRGB()語句setRGB()語句用于設置影片剪輯的顏色。其格式如下:setRGB(顏色值);例如,以下代碼將設置名為carColor影片剪輯實例的顏色為藍色。myColor=new Color(_root.carColor)_root.blue.onRelease=function()myColor.setRGB(0 x0000ff)第9章 ActionScript編程基礎 利用條件循環控制可以讓交互動畫實現靈活的分支轉移。一、條件語句條件語句即一個以if開始的語句,用于檢查一個條件的值是true還是false。如果條件值為true,則ActionScript依次執行后面的

48、語句;如果條件值為false,則ActionScript將跳過這個代碼段,執行下面的語句。if經常與else結合使用,用于多重條件的判斷和跳轉執行。例如,以下代碼用于測試條件和執行相關的動作,如果前面的條件返回值為false,則將執行else中的語句:第八節 條件循環控制第9章 ActionScript編程基礎 if(password)=4321&(address=room439) gotoAndStop(“reject”); else gotoAndPlay(“firstMovie”);二、循環語句在ActionScript中可以按照一個指定的次數重復執行一系列的動作,或者是在一個特

49、定的條件中,執行某些動作。在使用ActionScript編程時,可以使用while,dowhile,for以及forin動作來創建一個循環語句。第9章 ActionScript編程基礎 1條件循環語句在編程過程中,有時需要在滿足某個條件的情況下實現一個循環,這時需要用到while語句或dowhile語句。在ActionScript中循環語句while用于對一個表達式求值,如果表達式的值是true,那么循環體中的代碼被執行。當循環體中的所有語句都被執行之后,表達式按照程序要求再次進行求值,就這樣反復執行,直到表達式的值變為false,就跳出本次循環執行循環后的語句。例如,在下面的程序語句中,動作

50、被重復執行了6次:i=6; While(i0) 第9章 ActionScript編程基礎 MyMovieClip.duplicateMovieClip(“newMovieClip”+i,i); i-;另外,也可以使用dowhile語句創建同樣的循環,在一個dowhile語句中,表達式是在代碼塊的底部被求值,因此,這個循環至少會被執行一次。例如,將上面的那段語句用dowhile編寫如下:i=6 do MyMovieClip.duplicateMovieClip(“newMovieClip”+i,i); i-; while(i0);第9章 ActionScript編程基礎 2按照指定的次數循環在A

51、ctionScript中,可以使用for語句使程序按照指定的次數循環,在一些特殊的場合,這種功能具有很重要的意義。在很多情況下,需要預設一個數值作為初值來控制循環的次數。可以通過聲明一個變量,并編寫一條每當循環被執行一次就對變量進行自增或自減運算的語句的方法來實現一個循環控制。在一個完整的for 語句中,計數值和計數值的自增或自減運算的語句是整個程序語句中的一部分,例如下面的語句:for(i=6;i0;i-) MyMovieClip.duplicateMovieClip(“newMovieClip”+i,i);第9章 ActionScript編程基礎 本節將為用戶介紹4個交互動畫的制作,以幫助

52、用戶對前面的知識有一個很好的理解和練習。一、復制制作“復制”交互動畫的操作步驟如下:(1)選擇“文件”“新建”命令,創建一個新的動畫文件。(2)選擇“修改”“文檔”命令,彈出“文檔屬性”對話框,設置“尺寸”為“500 px200 px”,“背景顏色”為“黑色”,單擊“確定”按鈕。第九節 制作交互動畫第9章 ActionScript編程基礎 (3)按Ctrl+F8鍵,彈出“創建新元件”對話框,在“名稱”文本框中輸入“圖片”,在“類型”選項區中選中“影片剪輯”單選按鈕,如圖9.9.1所示。圖9.9.1 “創建新元件”對話框第9章 ActionScript編程基礎 (4)單擊“確定”按鈕,進入該元件

53、的編輯窗口,繪制如圖9.9.2所示的花朵圖形。(5)重復第(3)步的操作,創建一個名為“復制”的元件,單擊“確定”按鈕,進入該元件的編輯窗口。(6)選擇“窗口”“庫”命令,打開庫面板,拖動“圖形”元件到工作區中。(7)選擇工具箱中的文本工具,在屬性面板中設置文本類型為“動態文本”,字體為“Times New Roman”,字體大小為“36”,文本顏色為“#FF0066”,并單擊“切換粗體”按鈕,在“圖片”實例的右下角拖出一個動態文本框,如圖9.9.3所示。第9章 ActionScript編程基礎 圖9.9.2 繪制花朵圖形 圖9.9.3 拖出動態文本框 第9章 ActionScript編程基礎

54、 (8)選中動態文本框,雙擊鼠標左鍵,將其切換至可編輯狀態,在其中輸入初始值為“0”,如圖9.9.4所示。(9)選中動態文本框,在屬性面板的“變量”文本框中輸入字符“n”,如圖9.9.5所示。圖9.9.5 設置變量圖9.9.4 輸入初始值第9章 ActionScript編程基礎 (10)單擊“場景1”圖標,返回到主場景。(11)從庫面板中拖動“復制”元件到工作區中,然后選中“復制”實例,在屬性面板的“實例名稱”文本框中輸入字符“earth”,如圖9.9.6所示。圖9.9.6 輸入實例名稱第9章 ActionScript編程基礎 (12)選擇“窗口”“公用庫”“按鈕”命令,打開按鈕庫,在按鈕庫中

55、選擇“classic buttons”“Ovals” “Oval buttons - blue”命令,將其拖動到工作區中,并另外復制一個,如圖9.9.7所示。圖9.9.7 拖入并復制“Oval button-blue”元件第9章 ActionScript編程基礎 (13)選擇“窗口”“動作”命令,打開動作面板,如圖9.9.8所示。圖9.9.8 動作面板第9章 ActionScript編程基礎 (14)選中左側的“Oval button-blue”實例,在動作面板中輸入以下代碼:on (press) n = Number(n)+1;bn = “earth” add n;duplicateMovi

56、eClip(“earth”, bn, n);setProperty(bn, _x, Number(getProperty(bn, _x)+Number(n*(Number(getProperty(bn, _width)+1);set(bn add “:n”, n);第9章 ActionScript編程基礎 (15)選中右側的“Oval button-blue”實例,在動作面板中輸入以下代碼:on (press, release) if (Number(n)0) bn = “earth” add n;removeMovieClip(bn);n = n-1;第9章 ActionScript編程基礎

57、 (16)單擊時間軸面板中的“插入圖層”按鈕,插入“圖層2”。(17)選中“圖層2”,選擇工具箱中的文本工具,在屬性面板中設置文本類型為“靜態文本”,字體為“隸書”,字體大小為“28”,文本顏色為“黑色”,并單擊“切換粗體”按鈕,在“Oval button-blue”實例的上面依次輸入文本“增”和“減”,如圖9.9.9所示。(18)按Ctrl+Enter鍵,測試動畫效果,如圖9.9.10所示。,第9章 ActionScript編程基礎 第9章 ActionScript編程基礎 二、按鍵測試制作“按鍵測試”交互動畫的操作步驟如下:(1)選擇“文件”“新建”命令,創建一個新的動畫文件。(2)選擇“

58、修改”“文檔”命令,彈出“文檔屬性”對話框,設置“尺寸”為“500 px400 px”,“背景顏色”為“#0000CC”,單擊“確定”按鈕。(3)選擇“文件”“導入”“導入到舞臺”命令,彈出“導入”對話框,導入一幅圖片到工作區中,如圖9.9.11所示。(4)單擊時間軸面板中的“插入圖層”按鈕,插入“圖層2”。第9章 ActionScript編程基礎 (5)選中“圖層2”的第1幀,選擇工具箱中的文本工具,在屬性面板中設置字體為“華文行楷”,字體大小為“28”,文本顏色為“白色”,并單擊“切換粗體”按鈕,在工作區中輸入文本“你按下的是這個鍵嗎?”,如圖9.9.12所示。圖9.9.11 導入圖片 圖

59、9.9.12 輸入文本 第9章 ActionScript編程基礎 (6)按Ctrl+F8鍵,彈出“創建新元件”對話框,在“名稱”文本框中輸入“1”,在“類型”選項區中選中“圖形”單選按鈕,如圖9.9.13所示。(7)單擊“確定”按鈕,進入該元件的編輯窗口。選擇工具箱中的文本工具,在屬性面板中設置文本類型為“動態文本”,字體為“Arial Black”,字體大小為“70”,文本顏色為“#C86400”,線條類型為“單行”,在工作區中拖出一個動態文本框,如圖9.9.14所示。第9章 ActionScript編程基礎 圖9.9.14 拖出一個動態文本框 圖9.9.13 “創建新元件”對話框第9章 A

60、ctionScript編程基礎 (8)選中動態文本框,在屬性面板的“變量”文本框中輸入字符“keyshow”,如圖9.9.15所示。圖9.9.15 設置變量第9章 ActionScript編程基礎 (9)按Ctrl+F8鍵,彈出“創建新元件”對話框,在“名稱”文本框中輸入“空”,在“類型”選項區中選中“影片剪輯”單選按鈕,單擊“確定”按鈕,進入該元件的編輯窗口,不做任何編輯。(10)重復第(9)步的操作,創建一個名為“字”的元件,單擊“確定”按鈕,進入該元件的編輯窗口。(11)選擇“窗口”“庫”命令,打開庫面板,從中拖動“1”元件到工作區中。(12)單擊時間軸面板中的“添加運動引導層”按鈕,為“圖層1”添加一個運動引導層,如圖9.9.16所示。第9章 Act

溫馨提示

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

評論

0/150

提交評論