13-14action.ppt_第1頁
13-14action.ppt_第2頁
13-14action.ppt_第3頁
13-14action.ppt_第4頁
13-14action.ppt_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、動畫設(shè)計與制作,2,ActionScript,3,簡介,ActionScript是面向?qū)ο蟮哪_本程序語言。它的結(jié)構(gòu)與javaScript相似,都是采用面向?qū)ο蟮木幊趟枷?,如果大家熟悉javaScript,那么理解flash中的ActionScript會容易的很多,但兩者之間也存在著明顯的區(qū)別。在flash mx 2004中的ActionScript代碼并不是任何地方都可以使用,應(yīng)該將ActionScript代碼添加到關(guān)鍵幀(keyframe)、按鈕或者影片剪輯(movie clips)中,并稱之為幀動作、按鈕動作以及影片剪輯動作。,4,ActionScript2.0術(shù)語,動作(action):

2、指定一個動畫在播放時做的某些事情的一些語句。 事件:一般情況,動作被觸發(fā)時才會執(zhí)行,起觸發(fā)作用的部分就是事件。 類(class):是可以創(chuàng)建的數(shù)據(jù)類型,用于定義新的對象類型。 結(jié)構(gòu)體(constructors):用來定義類的屬性和方法的函數(shù)。 常量(constants):其值始終不變的屬性。 表達式(expression):由運算符和操作數(shù)組成,是動作腳本語句中能夠產(chǎn)生值的任何一個部分。 函數(shù)(function):用來傳遞參數(shù)并能返回值的可重復(fù)使用的代碼塊。,5,參數(shù)(arguments):通過設(shè)置參數(shù)可以把值傳遞給參數(shù)。 標識符(identifiers):用于識別某個變量、屬性、對象、函數(shù)或

3、方法的名稱。 事件處理程序(handers):是一種用來處理和管理事件的特殊動作。 實例(instance):是屬性的某個對象。 實例名稱(instance name):是動作腳本中用來表示影片剪輯實例的唯一名稱。 屬性(property):用于定義對象的特性。 方法:(methods):指被指派給某一個對象的函數(shù)。 對象(objects):是屬性的集合。,6,語法規(guī)則,1點語法:用于指明與某個對象或電影剪輯相關(guān)的屬性或方法。 2大括號:動作腳本時間處理函數(shù)、類定義以及函數(shù)用大括號組合在一起形成塊。 3小括號:小括號()是具有運算符的最優(yōu)先級別。在定義函數(shù)時,要將所有的參數(shù)都放在括號中。 4分

4、號:語句以;結(jié)束。 5:大小寫:在actionScript中,只有關(guān)鍵字區(qū)分大小寫。 6:關(guān)鍵字:在actionScript中保留了一些標識符作為內(nèi)建對象、函數(shù)等標識 7:注釋:/表明其后的內(nèi)容為注釋內(nèi)容。,7,ActionScript基礎(chǔ),數(shù)據(jù)類型 1字符串: 2對象: 3影片剪輯 4null,8,基本命令,1stop和play 2goto 3stopAllSounds 4getURL 5fscommand 6loadMovie和unloadMovie 7setProperty和getProperty,9,舞臺上有兩個實例a,b,增加一個按鈕 on(press) i=getProperty(

5、this.a,_x) setProperty(this.b,_x,i) 第二種寫法 setProperty(this.b, _x, getProperty(this.a,_x);,10,8statDrag和stopDrag startDrag(,True|False,left,top,right,bottom) 開始拖拽一個MC,target為該MC的名字,第二個參數(shù)表示是否要將數(shù)標指針所定到該MC的中心,left,top,right,bottom四個參數(shù)表示MC只能在這兩個坐標所定義的方框之內(nèi)被拖拽。這四個參數(shù)可以是一個數(shù)值常量,也可以是一個算術(shù)表達式。,11,9with 10_root 1

6、1tellTarget 這是一條非常有用的語句。它用于MC之間的相互控制和協(xié)調(diào)。比如一個MC可以告訴另一個MC什么時候需要跳轉(zhuǎn)到哪一楨,一個MC還可以控制何時載入另一個MC,何時顯示它,何時卸載它等等。合理的利用tellTarget語句,可以使您的動畫更具有觀賞性。,12,12ifFrameLoaded ifFrameLoaded(,) 該語句為Flash特有的條件語句,用于判定某個楨是否已經(jīng)被載入。 13onClipEvent,13,14attachMovie(,) 綁定一個Movie,產(chǎn)生一個庫中MC的實體,其中的idName是庫中MC的名字,newname是新生成MC的名字,depth為

7、深度。 例: _root.onEnterFrame = function() attachMovie(c,cc,100) ,14,15duplicateMovieClip() 深度:這是動態(tài)復(fù)制影片剪輯實例的方法,最后一個參數(shù):depth表示的是深度級別,它是SWF文件中影片剪輯在Z順序空間的堆疊次序。Z順序類似圖層,高圖層中的圖像顯示在低圖層中的圖像之上。同樣,深度級別高的影片剪輯顯示在深度級別低的影片之上。而且每一個深度級別只能容納一個影片剪輯,如果AS將一個新的影片剪輯放置到一個已經(jīng)被另一個影片剪輯占據(jù)的深度級別是,舊影片將被刪除而被新影片剪輯取代。深度的取值范圍是-1638410485

8、75。,15,16_xscale 影片剪輯的水平縮放比例(百分比)。數(shù)值越大影片剪輯越寬. _xscale =-100時影片剪輯左右顛倒。 _x 橫坐標 _y 縱坐標,16,Math.cos 用法 Math.cos(x) 參數(shù) x 以弧度為單位的角度值。 返回一個數(shù)字。 說明 方法;返回由參數(shù) x 指定的角的余弦值(介于 -1.0 與 1.0 之間的值)。必須以弧度為單位指定角度 x。請使用在 Math 對象簡介中列出的信息計算弧度。,17,_mc.onEnterFrame就是表示當影片播放到當前幀,觸發(fā)一個事件。 實時更新,18,條件循環(huán)控制,1條件控制 格式1: If(條件) 動作序列1

9、格式2: If(條件) 動作序列1 else 動作序列2 ,19,格式3: If(條件1) 動作序列1 else if (條件2) 動作序列2 . else if (條件n) 動作序列n ,20,循環(huán)控制,While語句的語法格式: while (條件) 指令體 條件:每次執(zhí)行while語句塊時都要重新計算的表達式,結(jié)果為true或者flase 執(zhí)行過程:首先計算條件表達式的值,若表達式的值為true,則執(zhí)行花括號中的指令體,然后再次判斷條件是否成立.,21,變量、運算符、表達式,1變量 2運算符及表達式 3函數(shù),22,變量名 變量名需符合以下幾點: 1)變量名必須是一個標識符,不能包含任何特

10、殊符號; 2)變量名不能是關(guān)鍵字及布爾值(true和flase) 3)變量名在其作用域中唯一。,23,變量的類型 在Flash中不需要顯式的聲明一個變量的類型,當變量被賦值的時候,它的類型被動態(tài)的確定,當然,也可以把賦值語句理解為變量的聲明語句,例如: x=3;,24,變量的作用域 ActionScript中有局部變量和全局變量之分,全局變量在整個動畫的腳本中都有效,而局部變量只在它自己的作用域內(nèi)有效。聲明局部變量需要用到var語句。例如,在下面的例子中,i是一個局部的循環(huán)變量,它只在函數(shù)init中有效: functioninit() vari; for(i=0;i10;i+) randomA

11、rrayi=random(100); ,25,局部變量可以防止名字沖突,而名字沖突可能會導(dǎo)致致命的程序錯誤。例如,變量n是一個局部變量,它可以用在一個MC對象中計數(shù),而另外一個MC對象中可能也有一個變量n,它可能用作一個循環(huán)變量,因為它們有不同的作用域,所以并不會造成任何沖突。 使用局部變量的好處在于減少程序錯誤發(fā)生的可能。比如,一個函數(shù)中使用局部變量,那么這個變量只會在函數(shù)內(nèi)部被改變,而一個全局變量可以在整個程序的任何位置被改變,使用錯誤的變量可能會導(dǎo)致函數(shù)返回錯誤的結(jié)果,甚至使整個系統(tǒng)崩潰。,26,變量的聲明 在程序中,給一個變量直接賦值或者使用setVariables語句賦值就相當于聲明

12、了全局變量;局部變量的聲明需要用var語句。在一個函數(shù)體內(nèi)用var語句聲明變量,該變量就成了這個函數(shù)的局部變量,它將在函數(shù)執(zhí)行結(jié)束的時候被釋放;在根時間軸上使用var語句聲明的變量也是全局的,它們在整個動畫結(jié)束的時候才會被釋放掉。 在聲明了一個全局變量之后,緊接著再次使用var語句聲明該變量,那么,這條var語句無效,例如:,27,aVariable=10; varaVariable; aVariable+=1; 在上面的腳本中,變量aVariable被重復(fù)聲明了兩次,其中var語句的聲明被視為無效,腳本執(zhí)行后,變量aVariable的值將為11。,28,變量的使用 在引用一個變量的時候,必須

13、先進行聲明(使用var語句或者直接賦值),如果變量沒有得到初始化,那么,在下面的例子中,將會產(chǎn)生錯誤: gotoAndPlay(aFrame); 其中aFrame是一個標簽,因為aFrame沒有被聲明,gotoAndPlay將會被錯誤的執(zhí)行,跳轉(zhuǎn)到一個不確定的位置。,29,動作面板,30,在【動作】面板中,可以用以下3種方法檢查語法: 單擊“腳本窗口”上方的【語法檢查】按鈕。 在【動作】面板中,單擊右上角的按鈕,在彈出的菜單中選擇【語法檢查】命令。 在【動作】面板中,按快捷鍵Ctrl+T。,31,事件,事件是觸發(fā)動作的信號。例如:用戶單擊鼠標,按下鍵盤上的某個按鈕或影片剪輯實例等都會產(chǎn)生一個事

14、件,這些類型的事件通常稱做用戶事件。由播放器自動產(chǎn)生的事件(影片剪輯在舞臺上第一次出現(xiàn))稱做系統(tǒng)事件。 在動畫文件中,為使應(yīng)用程序能夠?qū)κ录龀龇磻?yīng),必須使用事件處理函數(shù)。時間處理函數(shù)就是與特定對象和事件關(guān)聯(lián)的動作腳本代碼。 動作腳本代碼提供種了幾種不同的方法來處理事件,下面重點介紹使用按鈕和影片剪輯事件處理函數(shù)的方法。,32,1使用按鈕事件處理函數(shù) On()_事件處理函數(shù)可以直接將事件處理函數(shù)附加到按鈕實例,并指定觸發(fā)的鼠標事件或按鈕事件,菜單中的各個命令如下: Press:當鼠標指針移動到按鈕上并按下按鈕時,就會發(fā)生指定的動作。 Release:當單擊按鈕并釋放鼠標按鍵時,就會觸發(fā)指定的動

15、作。 releaseOutside:當按下按鈕后,將鼠標指針移到按鈕之外時釋放鼠標按鈕,就會發(fā)生指定的動作。,33,rollout: 鼠標指針滑出按鈕區(qū)域,就會發(fā)生指定的動作。 rollOver:鼠標指針由按鈕外移動到按鈕內(nèi)時,就會發(fā)生指定的動作。 dragOut:當鼠標指針滑過按鈕時按下鼠標左鍵,然后滑出此按鈕范圍,再滑回此按鈕之上,就會發(fā)生指定的動作。 dragOver:當鼠標指針移動到按鈕上并按下鼠標左鍵,然后滑出此按鈕范圍,再滑回此按鈕之上,就會觸發(fā)指定的動作。 keyPress:按下鍵盤上指定的鍵時,就會觸發(fā)指定的動作。,34,使用影片剪輯處理函數(shù),使用onClipEvent()事件

16、處理函數(shù)可以直接將事件處理函數(shù)附加到影片剪輯實例中。事件源含義如下: Load:當影片剪輯實例載入時間軸時產(chǎn)生這個事件。 Unload:從時間軸上卸載了影片剪輯之后,就發(fā)生該事件。 enterFrame:一旦影片剪輯的播放指針進入其時間軸的每一幀,就發(fā)生這個事件。 MouseMove:在場景中移動鼠標時就發(fā)生這個事件。 MouseDown:在場景中按下鼠標左鍵時就發(fā)生這個事件。 MouseUp:當釋放鼠標左鍵時就發(fā)生這個事件。 keyDown:按下鍵盤。 KeyUp:釋放鍵盤。 Data:當影片剪輯實例使用loadVariables()或loadMovie()動作接收數(shù)據(jù)時發(fā)生這個事件。,35

17、,例: 選中影片實例添加代碼: onClipEvent(enterFrame) this._x += 5 ,36,“時間軸控制”類別下的函數(shù),“時間軸控制”類別下包括九個簡單函數(shù),利用這些函數(shù)可以定義動畫的一些簡單交互控制。,37,(1)gotoAndPlay 一般形式:gotoAndPlay(scene,frame); 作用:跳轉(zhuǎn)并播放,跳轉(zhuǎn)到指定場景的指定幀,并從該幀開始播放,如果沒有指定場景,則將跳轉(zhuǎn)到當前場景的指定幀。 (2)gotoAndstop 一般形式:gotoAndstop(scene,frame); 作用:跳轉(zhuǎn)并停止播放,跳轉(zhuǎn)到指定場景的指定幀并從該幀停止播放,如果沒有指定場景,則將跳轉(zhuǎn)到當前場景的指定幀。 3)nextFrame() 作用:跳至下一幀并停止播放。,38,4)prevframe() 作用:跳至前一幀并停止播放。 (5)nextScene() 作用:跳至下場景并停止播放。 (6)PrevScene() 作用:跳至前場景并停止播放。 (7)play() 作用:可以指定影片繼續(xù)播放。 (8)Stop() 作用:停止當前播放的影片,該動作最常見的運用是使用按鈕控制影片剪輯。 (9)StopAllSounds() 作用:使當前播放的所有聲音停止播放,但是不停止動畫的播放。要說明一點,被設(shè)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論