版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、詳解一、FLASH腳本基礎(chǔ)入門講解1二、按鈕AS的編寫4三、影片剪輯的AS編寫5四、動態(tài)文本框6五、影片剪輯的拖拽8六、流程控制與循環(huán)語句10七、繪圖及顏色的AS的編寫12八、聲音AS的編寫與控制14九、時間日期的AS編寫17十、點語法以及路徑18十一、深入了解時間控制20十二、無條件轉(zhuǎn)移25十三、變量29十四、運算符(一)35十五、變量(二)39十六、影片剪輯的屬性43十七、再講循環(huán)語句49十八、影片剪輯處理函數(shù)55十九、復(fù)制影片剪輯60二十、深入startDrag()與stopDrag()63二十一、for循環(huán)67二十二、while與dowhile循環(huán)71二十三、循環(huán)語句的嵌套75二十四、
2、組件77二十五、播放器控制與網(wǎng)頁連接以及動畫發(fā)布輸出80二十六、loadVariables命令81二十七、影片剪輯的深度82二十八、文本框84二十九、超文本標(biāo)簽85一、FLASH腳本基礎(chǔ)入門講解認識“動作”面板在Flash中,動作腳本的編寫,都是在“動作”面板的編輯環(huán)境中進行,熟悉“動作”面板是十分必要的。按【F9】鍵調(diào)出“動作”面板,可以看到“動作”面板的編輯環(huán)境由左右兩部分組成。左側(cè)部分又分為上下兩個窗口左側(cè)的上方是一個“動作”工具箱,單擊前面的圖標(biāo)展開每一個條目,可以顯示出對應(yīng)條目下的動作腳本語句元素,雙擊選中的語句即可將其添加到編輯窗口。下方是一個“腳本”導(dǎo)航器。里面列出了FLA文件中
3、具有關(guān)聯(lián)動作腳本的幀位置和對象;單擊腳本導(dǎo)航器中的某一項目,與該項目相關(guān)聯(lián)的腳本則會出現(xiàn)在“腳本”窗口中,并且場景上的播放頭也將移到時間軸上的對應(yīng)位置上。雙擊腳本導(dǎo)航器中的某一項,則該腳本會被固定。右側(cè)部分是“腳本”編輯窗口,這是添加代碼的區(qū)域??梢灾苯釉凇澳_本”窗口中編輯動作、輸入動作參數(shù)或刪除動作。也可以雙擊“動作”工具箱中的某一項或“腳本編輯”窗口上方的【添加腳本】工具,向“腳本”窗口添加動作。在“腳本”編輯窗口的上面,有一排工具圖標(biāo),在編輯腳本的時候,可以方便適時的使用它們的功能。在使用“動作”面板的時候,可以隨時點擊“腳本”編輯窗口左側(cè)的箭頭按鈕,以隱藏或展開左邊的窗口。將左面的窗口
4、隱藏可以使“動作”面板更加簡潔,方便腳本的編輯。好了,動作面板就介紹這些,有個印象,不要求記住,工具欄上每個工具的作用和功能將在以后的課程中邊用邊熟悉。如何編寫flash中的腳本首先,要知道編寫腳本,不需要用戶對AS有完全的了解!現(xiàn)在要考慮的問題是,如何在你的flash中添加編寫腳本?簡單的說,添加腳本可分為兩種:一是把腳本編寫在時間軸上面的關(guān)鍵楨上面(注意,必須是關(guān)鍵楨上才可以添加腳本)。二是把腳本編寫在對象身上,比如把腳本直接寫在MC(影片剪輯元件的實例)上、按鈕上面。此外,大家也需要簡單理解一下flash是如何執(zhí)行你編寫的腳本的。當(dāng)你在時間周的關(guān)鍵楨上添加了腳本,那么當(dāng)flash運行的時
5、候,它會首先執(zhí)行這個關(guān)鍵楨上的腳本,然后才會顯示這個關(guān)鍵楨上的對象。還有一些簡單的知識,AS中的對象都包括什么呢?它可以包含數(shù)據(jù),也可以是舞臺上的電影剪輯,也可以是舞臺上的按鈕等。既然包含了那么多對象,那么每種對象肯定有各自的屬性!比如電影剪輯(movieclip)對象,它的:屬性就有_height(高度),_rotation(旋轉(zhuǎn)),等,這些屬性不需要你去特意的記憶,當(dāng)使用的時候可以隨時翻閱腳本字典。在以后的教程中會陸續(xù)給大家介紹一些基礎(chǔ)腳本的使用技巧。二、需要學(xué)到的基本AS命令如下:stop()、play()、gotoandplay()、gotoandstop()、nextFrame()、
6、prevFrame();、nextScene()、prevScene();、stopAllSounds();按鈕的AS編寫規(guī)則播放on(release)_root.mc.play();如果要在按鈕身上寫腳本的話,必須使用on(事件)/腳本程序的格式來寫!上面的腳本作用就是:當(dāng)你在這個按鈕上按一下鼠標(biāo)(release事件)的時候,就會執(zhí)行下面的_root.mc.play();程序,它的意思是讓舞臺上的me開始播放!6、同理:咱們選中舞臺上的暫停按鈕,在它上面輸入:on(release)_root.mc.stop()然后依次在快退上輸入:on(release)_root.mc.prevFrame(
7、);/prevFrame表示回到動畫的上一楨在快進的按鈕上輸入:on(release)_root.mc.nextFrame();在停止的按鈕上輸入:on(release)_root.mc.gotoAndStop(1);/跳到me影片的第一楨,并停止播放!二、按鈕AS的編寫在flash中的交互功能一般是由按鈕來完成的。掌握按鈕的編寫規(guī)則也是一個閃客的基本技能。OK,現(xiàn)在咱們來說說按鈕腳本如何編寫。上一講中提過,AS腳本編寫可以寫在時間軸的關(guān)鍵楨上,也可以寫在對象本身上面。按鈕也不例外,既可以寫在時間軸上,也可以寫在按鈕本身上面。只不過這兩種編寫規(guī)則都要遵循一定的規(guī)矩,這是后話?,F(xiàn)在咱們來做一個例
8、子,做一個按鈕,這個按鈕要實現(xiàn)的功能就是打開一個指定的網(wǎng)頁。(這個例子非?;A(chǔ),用這個例子來講解按鈕AS兩種編寫方法。)第一種:把腳本寫在按鈕本身。一、在舞臺上繪制一個矩形,選中矩形并按F8,將這個矩形轉(zhuǎn)換成按鈕元件。二、編寫動作腳本:選中按鈕,按F9,打開動作面板,在專家模式下輸入以下腳本:on(release)getURL("現(xiàn)在這個按鈕就實現(xiàn)了一個打開網(wǎng)頁的功能。通過例子你應(yīng)該注意到,按鈕的AS書寫規(guī)則就是:on(事件)/要執(zhí)行的腳本程序,剛才的例子是用getURL來打開一個網(wǎng)頁。你也可以使用腳本程序來執(zhí)行其他功能,例如跳轉(zhuǎn)到某一個楨,或載入外部一個動畫文件。大可以看到,其實就
9、一個on語句,這個on語句就是按鈕的AS編寫規(guī)則了。需要注意的是on里面的事件,這個事件你可以理解為是鼠標(biāo)或鍵盤的動作。剛才的例子我們使用的事件是release(按一下鼠標(biāo))我現(xiàn)在把常用的按鈕事件列出來:事件名字說明Press事件發(fā)生于鼠標(biāo)在按鈕上方,并按下鼠標(biāo)Release發(fā)生在按鈕上方按下鼠標(biāo),接著松開鼠標(biāo)時。也就是“按一下”鼠標(biāo)Releaseoutside發(fā)生于在按鈕上方按下鼠標(biāo),接著把光標(biāo)移動到按鈕之外,然后松開鼠標(biāo)Rollover當(dāng)鼠標(biāo)滑入按鈕時Rollout當(dāng)鼠標(biāo)滑出按鈕時Dragover發(fā)生于按著鼠標(biāo)不放,光標(biāo)滑入按鈕Dragout發(fā)生于按著鼠標(biāo)不放,光標(biāo)滑出按鈕Keypress
10、發(fā)生于用戶按下特定的鍵盤按鍵時下面來看看第二種按鈕AS的編寫方法。這種方法是把腳本程序?qū)懺跁r間軸上,而不是按鈕本身上面。一、選中按鈕,在下面的屬性面板中為按鈕起一個名字,這里我起了一個bt二、選中時間軸的第一楨,按F9打開動作面板。輸入如下腳本:bt.onrelease=function()getURL("http:/;這種編寫AS的方法要遵循的規(guī)則就是下面的公式而已:按鈕實例的名字.事件名稱=function()/要執(zhí)行的腳本程序。大家只要記住這個公式就可以套用了。按鈕的AS就先將到這了,這個可以算是基本技能了。希望大家都能掌握。三、影片剪輯的AS編寫影片剪輯在flash中可以說是
11、使用最多的一種元件了,那么對于它的AS也是不少。在講解之前,我還是要重新說一下電影剪輯AS的編寫規(guī)則,和上次講按鈕一樣,分為兩種,一種是寫在電影剪輯本身上,一種是寫在時間軸上面。一、首先我們先來做個簡單的小例子?;蛟S你不用AS就能做出一個小球的移動動畫。但是如果讓你用AS來實現(xiàn)小球的移動呢?下面來看看如何用AS來實現(xiàn)吧。在這個例子里,你首先會了解到如何在電影剪輯本身上編寫AS,以及編寫規(guī)則。1、新建立一個影片剪輯元件,里面你就隨便畫一個圓吧。之后把這個影片剪輯拖放到舞臺之中(也就是創(chuàng)建一個此影片剪輯的實例)。2、現(xiàn)在開始編寫腳本,選中這個MC,按F9打開動作面板,按照圖01顯示選擇onClip
12、Event,之后在顯示的事件中選擇enterFrame,然后在里面編寫腳本如下:this._x+=5這個腳本編寫之后應(yīng)該是:onClipEvent(enterFrame)/enterFrame的意思四以影片幀頻不斷地觸發(fā)此動作this._x+=5;/this代表這個影片剪輯自身。_x表示影片剪輯的X軸坐標(biāo)。呵呵,按下你的ctrl+回車測試一下吧,一個簡單的移動動畫就搞定了。從這個例子咱們不難看出,如果把AS寫在影片剪輯本身上,那么它是有自己的書寫格式的。正確的書寫格式就是:onClipEvent(事件)/需要執(zhí)行的腳本程序這個可以看成是公式,你記住就行了,是寫在影片剪輯身上的。括號里的“事件”
13、其實是個觸發(fā)器,當(dāng)事件發(fā)生時,執(zhí)行該事件后面花括號中的語句。,具體有哪些事件,我把它們都列出來。- load影片剪輯一旦被實例化并出現(xiàn)在時間軸中時,即啟動此動作。- unload在從時間軸中刪除影片剪輯之后,此動作在第一幀中啟動。處理與Unload影片剪輯事件關(guān)聯(lián)的動作之前,不向受影響的幀附加任何動作。- enterFrame以影片幀頻不斷地觸發(fā)此動作。- mouseMove每次移動鼠標(biāo)時啟動此動作。_xmouse和_ymouse屬性用于確定當(dāng)前鼠標(biāo)位置。- mouseDown當(dāng)按下鼠標(biāo)左鍵時啟動此動作。- mouseUp當(dāng)釋放鼠標(biāo)左鍵時啟動此動作。- keyDown當(dāng)按下某個鍵時啟動此動作。
14、使用Key.getCode方法獲取最近按下的鍵的有關(guān)信息。- keyUp當(dāng)釋放某個鍵時啟動此動作。使用Key.getCode方法獲取最近按下的鍵的有關(guān)信息。- data當(dāng)在loadVariables或loadMovie動作中接收數(shù)據(jù)時啟動此動作。當(dāng)與loadVariables動作一起指定時,data事件只發(fā)生一次,即加載最后一個變量時。當(dāng)與loadMovie動作一起指定時,獲取數(shù)據(jù)的每一部分時,data事件都重復(fù)發(fā)生。了解了事件之后,你可以自己試著修改一下腳本,如果讓你們點一下鼠標(biāo),舞臺上的圓就移動一下,該怎么做呢?關(guān)于把AS寫在影片剪輯本身的例子先講到這,下面來看看如果把AS寫在時間軸上面的
15、話,應(yīng)該怎么寫。首先你把剛才的腳本去掉。然后需要為這個影片剪輯實例起一個名字,比如起名為mc在選中時間軸的第一楨,打開動作面板,輸入以下腳本:mc.onEnterFrame=function()this._x+=5;/你也可以把這句改為mc._x+=5自己想一下為什么。;顯而易見,在時間軸上的寫法就應(yīng)該套用以下公式:實例名.事件名稱=function()/腳本程序需要注意的是,這種寫法的事件名稱不要忘了在前面加一個on,比如,事件如果是enterframe的話,你就應(yīng)該寫成onenterframe下面簡單說一下影片剪輯的屬性。比如,影片剪輯有自己的X、Y軸坐標(biāo),有自己的透明度(_alpha),
16、這些都是它的屬性。那么如何使用這些屬性呢?你可以使用“點”語法來對屬性進行設(shè)置。把上面的腳本修改一下。mc.onenterframe=function()mc._x+=5;mc._alpha=random(100);這里我加了一句this._alpha=random(100),它是設(shè)置影片剪輯的透明度的,使用的語句就是_alpha。后面的random()函數(shù)是隨機選取一個100以內(nèi)的數(shù)字作為它的透明度。從這個句子可以看出,“點”語法使用方法就是:實例名.屬性(mc._alpha),你甚至可以簡單理解為“點”就是“的”,那么this._alpha這句你就可以理解為:影片剪輯me的透明度上面的腳本
17、mc._alpha=random(100)也可以改為_root.mc._alpha=random(100)那么,你就可以理解為:舞臺上的影片剪輯me的透明度是隨機選擇100內(nèi)的值。四、動態(tài)文本框一、flash中的動態(tài)文本使用方法在flash中,文本工具提供了三種文本類型。分別是:靜態(tài)文本、動態(tài)文本和輸入文本。下面講解的內(nèi)容屬于動態(tài)文本的AS編寫規(guī)則。要創(chuàng)建一個動態(tài)文本非常簡單,只需要選中文本工具,然后選擇動態(tài)文本類型,然后在舞臺上拖拽出所需要的動態(tài)文本框就行了。二、如何為動態(tài)文本賦值當(dāng)在舞臺上拖拽出動態(tài)文本框之后,可以直接在里面進行文本輸入或粘貼外部文本內(nèi)容。那么用AS如何來對動態(tài)文本框賦值呢
18、?在這里為大家介紹兩種方法進行賦值!1、使用動態(tài)文本的實例名字來賦值操作步驟:(1)在舞臺上創(chuàng)建一個動態(tài)文本框,并為這個動態(tài)文本實例起一個名字,例如abc(2)選中時間軸的第一楨,打開動作面板,輸入以下腳本:abc.text="愛國者安全網(wǎng)"按下ctrl+回車就可進行測試了。從這個簡單的例子可以知道,如果要用文本實例名字來進行賦值的話,必須使用以下格式:動態(tài)文本實例的名字.text=”需要賦值的內(nèi)容”2、使用變量來賦值(1)在舞臺上創(chuàng)建一個動態(tài)文本框,并為這個動態(tài)文本實例起一個變量名3800hk。(2)選中時間軸的第一楨,打開動作面板,輸入以下腳本:3800hk="
19、;歡迎大家來到愛國者安全網(wǎng)學(xué)習(xí)!"不難看出,使用變量賦值更為簡單實用!賦值格式為:變量名=“賦值的內(nèi)容”以上兩種賦值方法如果內(nèi)容過多需要換行的時候,需要使用行用回車符(“r”即ASCII13)分隔!三、如何載入外部txt文本里的內(nèi)容當(dāng)內(nèi)容過多的時候,使用上面的方法并不是太好,我們可以使用下面的方法,從外部獲取文本資料內(nèi)容!而外部的資料內(nèi)容就放在一個普通的txt(記事本)文件中。具體操作步驟如下:1、創(chuàng)建一個動態(tài)文本實例,并為這個動態(tài)文本實例起一個變量名hk2、選中時間軸的第一楨,打開動作面板,輸入以下腳本:loadVariablesNum("heiying.txt"
20、;,0);/載入外部名字叫heiying.txt的文本文件,加載級別為03、現(xiàn)在來準(zhǔn)備外部的heiying.txt文本文件了。注意:要把這個文本文件和你剛才做的flash文件放在一個文件夾里!這個txt文件里的資料應(yīng)該按照如下格式編寫:flash中動態(tài)文本變量的名字=這里就是所需要的資料內(nèi)容。對應(yīng)上面的格式,外部heiying.txt中的內(nèi)容為:hk=歡迎大家來到愛國者安全網(wǎng)學(xué)習(xí)!。最后一點,需要將這個文本文件保存為UTF-8格式。4、完成以上步驟之后,就可以進行測試了。下面介紹另外一種載入外部文本資料的方法,并介紹當(dāng)文本內(nèi)容過多時候,如何使用滾動條組件(1)創(chuàng)建一個動態(tài)文本實例,并并為這個動
21、態(tài)文本實例起一個實例名字anquan(注:是實例名而不是變量名)起一個變量名為hk(2)打開flash的組件面板(快捷鍵ctrl+F7),找到UIScrollBar(滾動條)組件。按著它不動,然后拖放此組件至剛才的動態(tài)文本實例的右部邊緣,如果成功的話,組件會和文本框結(jié)合在一起?。?)選中舞臺第一楨,編寫如下腳本:tt=newLoadVars();創(chuàng)建一個LoadVars對象的實例,這里的實例名字叫tttt.load("heiying.txt");/創(chuàng)建的tt實例需要載入的對象是heiying.txt文本文件。tt.onLoad=function(s)/開始載入外部文件,具體
22、格式請按照此例格式。參數(shù)s是指示load操作是否成功完成。如果完成,那么S的值就為true(真),反之為false(假)if(s)anquan.text=tt.hk;/如果載入成功,則anquan文本框中的內(nèi)容就等于tt.實例中的heiying的內(nèi)容!(hk是我們外部文本文件中的變量。);(4) 至于外部的heiying.txt還可以使用剛才所創(chuàng)建的文本文件,為了測試滾動條的效五、影片剪輯的拖拽在網(wǎng)上經(jīng)常看到的flash影片中有的對象可以被鼠標(biāo)進行拖動。例如有的類似七巧板的拼圖游戲,控制音量的滑桿等,所使用的就是flash中的拖拽動作。一、拖拽命令詳細介紹1、首先介紹一下開始拖拽命令的詳細用法
23、,稍后在后面的例子中進行測試。命令格式:StartDrag(要拖動的影片剪輯,是否鎖定到鼠標(biāo)位置中央,左,上右,下)或?qū)憺橐蟿拥挠捌糨?StartDrag(是否鎖定到鼠標(biāo)位置中央,左,上,右,下)命令講解:在制作動畫的過程中,上面兩種書寫方法可任選一種。其中內(nèi)的為可選參數(shù),也就是可以寫,也可以不寫。至于左,上,右,下四個參數(shù)是用來控制被拖對象的移動范圍。2、停止拖拽命令講解命令格式:被拖動的影片剪輯實例名.stopDrag()這樣就可以停止對對象的拖拽動作。二、實例講解下面來用一個簡單的例子實驗拖拽命令。操作步驟:1、新建一個flash文檔,并在舞臺上繪制一個圓形。選中圓形并按F8,將此圓
24、形轉(zhuǎn)換為影片剪輯,起名為:圓。確定后將會在舞臺上創(chuàng)建一個圓的實例。2、選中此實例,并按F9打開動作面板。輸入如下腳本:on(press)this.startDrag(true);/當(dāng)鼠標(biāo)按下(press)之后,這個實例(因為我們把腳本寫在實例本身了,所以這里用this代替影片剪輯實例的名字)可以被拖拽,使用命令如上面的命令解釋。對于參數(shù)的選擇方面,這里只填寫了鎖定到鼠標(biāo)位置中央,如果想選不鎖定到鼠標(biāo)位置中央,可以把true改為false。有興趣的朋友可以更改為false看看。on(release)this.stopDrag();同樣道理,當(dāng)鼠標(biāo)釋放(release)之后,將停止拖拽動作。3、好
25、了,現(xiàn)在讓我們按Ctrl+回車來測試一下吧,你將會看到舞臺上的圓被你的鼠標(biāo)拖動的效果。4、0K,通過這個例子我們可以簡單的應(yīng)用拖拽動作了?,F(xiàn)在需要把這個例子繼續(xù)完成,還記得上面命令講解中的左,上,右,下四個控制拖動范圍的參數(shù)嗎?現(xiàn)在來制作具有約束拖動范圍的效果。5、現(xiàn)在在舞臺上繪制一個200*100大小的矩形,注意只要邊框不要填充。6、如果我們希望在拖動的時候這個圓只能在矩形內(nèi)拖動的話,就要先設(shè)置這個矩形的坐標(biāo),并記下矩形四個頂點的坐標(biāo)(這點很重要!)。OK,比如,現(xiàn)在此例子中的矩形的四個頂點分別如上圖所示。那我們要取的四個參數(shù)就應(yīng)該是:左=50,上=100,右=250,下=200現(xiàn)在打開動作
26、面板,修改剛才的腳本如下:on(press)this.startDrag(true,50,100,250,200);/這里我們就使用剛才確定好的4個參數(shù)。4個點的參數(shù)就對拖動對象實現(xiàn)了一個矩形區(qū)域的移動約束!on(release)this.stopDrag();7、好了,按Ctrl+回車去測試吧!好了,關(guān)于拖拽的講解先到這里,下面我們來學(xué)習(xí)如何結(jié)合著拖拽動作來檢測對象之間的碰撞!三、碰撞命令的講解命令格式:目標(biāo)影片剪輯的實例.hihkest(被拖拽的實例)這個是比較簡單的檢測碰撞命令目標(biāo)影片剪輯的實例.hihkest(被拖拽實例的X軸坐標(biāo),被拖拽實例的Y軸坐標(biāo),對象的矩形區(qū)域范圍還是對象本身范
27、圍)這個是比較復(fù)雜點的檢測碰撞命令命令解釋:以上兩個命令都是用來檢測碰撞的,可以根據(jù)需要選擇不同的命令。重點解釋一下對象的矩形區(qū)域范圍和對象本身范圍(上面的命令中,false表示對象的矩形區(qū)域范圍,true表示對象本身的范圍)四、碰撞命令與拖拽命令的結(jié)合使用(一)、下面通過簡單的例子來學(xué)習(xí)碰撞命令(我們先來學(xué)習(xí)如何檢測是否碰到對象的矩形區(qū)域范圍)1、新建一個flash文檔,在舞臺上繪制一個圓形。選中圓形并按F8將它轉(zhuǎn)換為影片剪輯,起名:圓。這樣就在舞臺上創(chuàng)建了一個圓的實例。2、選中此實例,為它起一個名字,此例起名為:yuan3、選擇文字工具,并選擇文字類型為“動態(tài)文本”,在圓的實例下面拖繪出一
28、個動態(tài)文本框。并起一個變量名為:hk4、選中時間軸的第一楨,按F9打開動作面板,輸入以下腳本:_root.onEnterFrame=function()這個是在時間軸上的AS編寫規(guī)則,解釋為舞臺上每楨都執(zhí)行下面的腳本(onEnterFrame)。if(_root.yuan.hitTest(_root._xmouse,_root._ymouse,false)/根據(jù)上面命令的講解,這個語句就是檢測碰撞了。如果鼠標(biāo)碰到舞臺上yuan這個實例的矩形區(qū)域范圍的話,就執(zhí)行下面的腳本。hk="接觸矩形區(qū)域范圍"/動態(tài)文本框就顯示出“接觸矩形區(qū)域范圍”elsehk="沒有接觸到矩
29、形區(qū)域范圍"/如果鼠標(biāo)沒有碰到舞臺上yuan這個實例的矩形區(qū)域范圍的話,就顯示沒有接觸到矩形區(qū)域范圍。;現(xiàn)在可以按Ctrl+回車去測試我們的成果(二)、拖拽碰撞檢測現(xiàn)在再來一個例子講解拖拽碰撞檢測,想偷懶的話可以通過修改上面例子的代碼來學(xué)習(xí)。1、現(xiàn)在稍微修改一下上面的例子,以便讓我們學(xué)習(xí)拖拽碰撞檢測,在上面例子的舞臺上繪制一個矩形,并把這個矩形轉(zhuǎn)換成電影剪輯,起名為:矩形這樣就在舞臺上又創(chuàng)建了一個矩形的實例,現(xiàn)在為這個矩形實例起一個名為:juxing。2、選中這個矩形實例,打開動作面板,輸入可以拖拽這個實例的腳本。如下:on(press)this.startDrag(true);on
30、(release)this.stopDrag();這個腳本就是為了能拖動這個矩形實例。具體解釋請回顧第一個拖動對象例子的腳本說明。3、現(xiàn)在來修改腳本,選中時間軸的第一楨,按F9打開動作面板,你將會看到上個例子的碰撞檢測腳本,把它修改為如下腳本:_root.onEnterFrame=function()if(_root.yuan.hitTest(_root.juxing)hk="碰到了"elsehk="沒有碰到"這個腳本和上次的碰撞檢測腳本類似,只不過不需要再書寫X軸和Y軸,也不用寫是否碰到矩形區(qū)域范圍。簡單吧現(xiàn)在又到了測試階段了,去觀看你的成果六、流程控
31、制與循環(huán)語句眾所周知,flash中動畫依靠的是時間軸,在沒有腳本的情況下,動畫會依照時間軸從第一幀不停的播放到最后一幀,然后始重復(fù)播放或者干脆停止。為了能更好的控制動畫,就必須使用腳本語句。而要想使動畫具有邏輯判斷的功能,就要使用流程控制和循環(huán)控制語句了!下面通過幾個簡單的小例子來學(xué)習(xí)流程與循環(huán)控制語句。一、流程控制語句所謂流程控制,無非就是我們想控制動畫程序的執(zhí)行順序而已。我們可以讓flash根據(jù)一些特定的條件,來決定要執(zhí)行哪個程序。這樣就好象給了程序一些判斷的機制。if.else控制語句根據(jù)英文的意思,大家可以簡單的理解上面的控制語句:如果.就.否則.就.下面來看看這個流程控制語句的書寫格
32、式。if(條件)/條件成立的話,就執(zhí)行這里的程序。else/條件不成立的話就執(zhí)行這里的程序。下面重點說一下if后面括號內(nèi)的條件。這個條件可以是一個固定的值,也可以是一個變量或表達式。如果條件成立的話,也就是條件為真(true),就會執(zhí)行if后面的程序,如果條件不成立,也就是條件為假(false),就會執(zhí)行else里的程序。例如:有這么一個條件,A>B將這個表達式代入if后面的括號內(nèi),這個流程語句的意思就變成:如果A>B的話,就執(zhí)行第一個大括號內(nèi)的程序,如果A不大于E,就將執(zhí)行else后面大括號內(nèi)的程序。實例講解:1、新建一個flash文檔,在舞臺上繪制一個圓,選中圓并按F8轉(zhuǎn)換成影
33、片剪輯,起名為:圓這樣就在舞臺上創(chuàng)建一個圓的實例。2、選中舞臺上的實例,按F9打開動作面板,輸入如下腳本:onClipEvent(enterFrame)if(this._x<400)/流程條件控制語句,如果這個圓的實例的X軸坐標(biāo)小于400,就執(zhí)行后面的程序。this._x+=5;/讓這個圓的坐標(biāo)向右移動5個象素elsethis._x=0;/控制語句,如果剛才的條件不成立。也就是圓實例的X坐標(biāo)不小于400,就讓它的X坐標(biāo)為0上面的腳本是一個非常簡單的流程控制語句,根據(jù)實例的坐標(biāo)來進行判斷。因為我們使用了enterFrame事件,所以flash會不停的執(zhí)行下面if.else語句。3、測試影片
34、。會看到圓不停的向右移動,當(dāng)它的X坐標(biāo)大于或等于400的時候,程序會把它的X坐標(biāo)重新更改為0。二、循環(huán)控制語句所謂的循環(huán)語句,其實也是用條件來控制的,只要條件成立,那么,程序就會不停的執(zhí)行下去,一直執(zhí)行到條件不成立為止!常用的循環(huán)語句包括while循環(huán)、for循環(huán)等。因為篇幅有限,下面只重點講解for循環(huán)的使用方法。For循環(huán)命令格式:for(初始變量;條件語句;迭加命令語句)/用戶自己編寫的腳本。首先強調(diào)一點,for語句的括號內(nèi)有三個項目,必須要用分號間隔開!初始變量:循環(huán)語句也是用條件是否成立來控制的,通常我們用一個變量來控制程序執(zhí)行的次數(shù)。那么,這個初始變量就要先定義一個值。要注意的是,
35、初始變量這個項目只執(zhí)行一次!條件語句:這個項目就是我們的判斷語句了。如果這個項目判斷為真(true),也就是條件成立了。它就直接跳進大括號內(nèi)執(zhí)行里面的程序!反之,如果條件為假(false),它就直接跳出這個for語句了。迭加命令語句:接上面的條件語句,如果條件語句成立,會執(zhí)行內(nèi)的程序,那么執(zhí)行完程序之后,就要回來執(zhí)行迭加命令語句了。通常它就用來增加或減少剛開始時的初始變量的值。實例講解:1、新建一個flash文檔,在舞臺上繪制一個圓,選中圓并按F8轉(zhuǎn)換成影片剪輯,起名為:圓這樣就在舞臺上創(chuàng)建一個圓的實例。2、為這個實例起名為:yuan3、添加一個新的層,并選中新層的第一幀,按F9打開動作面板,
36、輸入如下腳本:for(i=1;i<5;i+)duplicateMovieClip("yuan","yuan"+i,i);_root"yuan"+i._x=random(400);_root"yuan"+i._y=random(300);_root"yuan"+i._alpha=random(100);如果大家實在覺得for語言很難讀懂的話,你可以按照for語言執(zhí)行的順序把i=1代入程序走一遍,可以幫助你理解程序。例如:當(dāng)i等于1的時候,程序開始判斷它是否小于5,那么1肯定小于5了,條件為真
37、,就執(zhí)行內(nèi)的復(fù)制程序,同時復(fù)制出來的新實例的名字就變成了yuan1,接著就是設(shè)置yuan1的坐標(biāo)和透明度。之后,for語句開始回去執(zhí)行i+,此時,i的值就變?yōu)?了。然后又開始循環(huán)判斷執(zhí)行下去(你可以算一下,這個for循環(huán)總共循環(huán)了幾次呢?答案是4次。)4、選中時間軸的第6幀,按F6插入一關(guān)鍵幀,打開動作面板輸入以下腳本:gotoAndPlay(1);讓flash播放到第6幀的時候返回第1幀再來執(zhí)行for循環(huán)語句。5、測試效果吧,你會看到舞臺上會循環(huán)4次復(fù)制出4個圓。希望大家能通過這兩個簡單的例子掌握流程控制語句和循環(huán)控制語句七、繪圖及顏色的AS的編寫在使用flash的過程中,難免會進行繪圖的操
38、作。除了用工具面板上的工具繪制圖形之外,我們也可以使用ActionScript來繪制圖形。如何繪制線段及命令解釋lineStyle(粗細,顏色,透明度)/設(shè)置繪制圖形的線條粗細、顏色和透明度Moveto(X坐標(biāo),Y坐標(biāo))設(shè)置繪圖線條的起點坐標(biāo)lineto(X坐標(biāo),Y坐標(biāo))/設(shè)置線條的結(jié)束坐標(biāo)現(xiàn)在就用剛才的三個命令在舞臺上繪制出來一個300*100大小的矩形。步驟:1、新建立一個flash文檔。2、既然要繪制一個300*100大小的矩形,我們就要先確定矩形4個頂點的坐標(biāo),然后就可以使用lineto命令進行編寫了。3、選中時間軸的第一楨,打開動作面板?,F(xiàn)在已經(jīng)確定了矩形的4個頂點,那么我們就可以來
39、編寫腳本命令了,請輸入以下腳本:_root.lineStyle(1,0x000000,100);/設(shè)置線條的粗細,顏色和透明度_root.moveTo(50,50);/設(shè)置開始點的坐標(biāo)。_root.lineTo(350,50);_root.lineTo(350,150);_root.lineTo(50,150);_root.lineTo(50,50);/設(shè)置結(jié)束點坐標(biāo),整個矩形繪制完畢相信大家通過上面的命令就很容易的用AS繪制出所需要的形狀,充分發(fā)揮你的想象力,可以通過lineto命令來設(shè)置多個點,從而創(chuàng)造出各種各樣的形狀。熟悉了繪制線條的命令之后我們來用一個例子加深印象。操作步驟:1、新建立
40、一個flash文檔,在舞臺上繪制一個圓,選中它并按F8轉(zhuǎn)換成影片剪輯,起名為:圓。2、打開庫面板,請將影片剪輯“圓”在舞臺上再拖放一個實例,使舞臺上存在兩個圓的實例。3、現(xiàn)在為舞臺上兩個實例分別起名字為a和b4、選中時間軸第一楨,打開動作面板,輸入以下腳本:functiondraw()/自己定義一個函數(shù),這個函數(shù)起名為draw(可自定),函數(shù)的功能是要實現(xiàn)以a實例的坐標(biāo)為起點,向b實例繪制線條。_root.hkear();清除舞臺上繪制的線條。_root.lineStyle(1,0x000000,90);/設(shè)置線條的粗細,顏色和透明度。_root.moveTo(a._x,a._y);以a實例的
41、坐標(biāo)為起點開始繪制線條。_root.lineTo(b._x,b._y);/以b實例的坐標(biāo)為繪制線條的結(jié)束點。draw();執(zhí)行函數(shù)draw,它將會在a與b之間繪制出一條黑色的線條。解釋:為了減輕編寫AS的工作量和程序的重復(fù)率,可以將某些功能定義為一個函數(shù),例如上面的draw(),在使用的時候,直接執(zhí)行定義過的函數(shù),就可以完成函數(shù)的功能。5、現(xiàn)在創(chuàng)建拖動效果,選中舞臺上的b實例,打開動作面板,輸入以下腳本:on(press)/點擊此實例,開始拖動this.startDrag(true);on(release)/釋放鼠標(biāo),停止拖動this.stopDrag();onClipEvent(mouseM
42、ove)/當(dāng)鼠標(biāo)移動,也就是這個b實例移動的時候,就執(zhí)行里面的程序。_root.draw();執(zhí)行舞臺上定義過的draw()函數(shù),開始在a與b之間繪制線條。updateAfterEvent();/強制更新畫面,是整個動畫更加流暢。按Ctrl+回車測試動畫效果。二、顏色命令講解setRGB()用來設(shè)置實例的顏色值,注意,這個值用16進制表示,例如0x000000(黑色)getRBG()獲取實例的顏色值下面用一個相對簡單的例子來說明顏色命令的使用以及如何填充顏色要想使用顏色命令,我們必須先構(gòu)建一個Color對象。方法就是自定義名字=newColor(”要改變顏色的對象"),構(gòu)建完colo
43、r對象之后,我們就能使用setRGB或getRGB來設(shè)置或獲取顏色了。步驟:1、新建立一flash文檔,背景大小為550*4002、選中時間軸第一楨,打開動作面板,我們現(xiàn)在要用AS來幫助我們創(chuàng)建一個影片剪輯的實例。所用到的命令為:createEmptyMovieClip(”實例名稱",深度)。創(chuàng)建一個影片剪輯實例,并起名為hk。輸入下面腳本。_root.createEmptyMovieClip("hk",1);/使用創(chuàng)建命令在舞臺上創(chuàng)建一個名字叫hk的影片剪輯實例,深度為1接下來我們要對這個hk實例進行繪制圖形和填充圖形!現(xiàn)在我們用AS繪制一個300*100大小的
44、矩形,并且把這個矩形填充為黑色,腳本如下:with(hk)/使用with命令設(shè)置hk的各個屬性beginFill(0x000000,85);/開始填充這個hk實例,顏色為黑色,透明度為85lineStyle(1,0x999999,100);/設(shè)置這個實例的邊框粗細為1,顏色為灰色,透明度為100moveTo(50,50);/設(shè)置繪制線條的起點坐標(biāo)lineTo(350,50);lineTo(350,150);lineTo(50,150);lineTo(50,50);/結(jié)束繪制,將在舞臺上繪制出一個300*100大小的矩形。endFill();/結(jié)束填充,與beginFill()命令對應(yīng)。OK,現(xiàn)
45、在我們就已經(jīng)創(chuàng)建了一個黑色的矩形?,F(xiàn)在我們要繼續(xù)實現(xiàn)變色的功能,也就是當(dāng)鼠標(biāo)移動的時候,這個矩形會隨機變換顏色!就需要用到我們的構(gòu)建Color對象的命令了。腳本如下:_root.onMouseMove=function()/當(dāng)鼠標(biāo)移動的時候就執(zhí)行下面的腳本命令。hk_color=newColor("hk");/構(gòu)建一個名字叫hk_color的Color對象。yanse="0x"+random(100)+random(100)+random(100);用一個變量yanse來獲取一個數(shù)值,這個數(shù)值就是顏色值hk_color.setRGB(yanse);設(shè)置矩
46、形的顏色。;好了,這個例子是完全由腳本編寫而成,所有腳本都在時間軸的第一楨3、按Ctrl+回車來測試你的影片吧會看到矩形會隨著鼠標(biāo)的移動而不斷進行顏色變化。八、聲音AS的編寫與控制一個好的flash作品,缺少了聲音,就如同人不會講話一樣。而flash中對聲音的支持也非常不錯,除了可以使用時間軸放置聲音文件之外,我們還可以使用AS來更加準(zhǔn)確的控制聲音!一、FLASH中如何創(chuàng)建聲音控件如果想控制動畫中的聲音,我們可以使用flash中的sound對象,通過sound命令創(chuàng)建一個新的sound對象。之后再用attachSound命令連接到庫里的聲音,就可以用來控制動畫中的聲音了。常用命令講解:newS
47、ound()此命令用來創(chuàng)建一個新的sound對象,有了sound對象我們才能用AS來控制聲音。attachSound(”庫中的聲音")此命令可以使我們創(chuàng)建的聲音對象連接到庫里的聲音,以便進行控制。start(從第幾秒開始播放,循環(huán)次數(shù))此命令可以是聲音開始播放,里面的兩個參數(shù)是可選的。stop()停止聲音的播放。setVolume(音量級別)此命令可以控制聲音的音量高低,音量級別只能是從0100之間的數(shù)字?,F(xiàn)在我們也應(yīng)該用AS先做一個簡單的小例子了。二、創(chuàng)建一個簡單的聲音播放動畫,可以實現(xiàn)簡單的開始與停止播放聲音。操作步驟:1、新建一個flash文檔,按Ctrl+R(文件導(dǎo)入)導(dǎo)入一
48、個聲音文件,聲音文件可以是MP3或WAV格式的。聲音文件導(dǎo)入之后,在舞臺上是看不見的,必須打開庫才能看到我們導(dǎo)入的聲音。2、選中庫中的聲音文件,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“鏈接.”將會彈出一個鏈接的對話框,請勾選“為動作腳本導(dǎo)出”和“在第一幀導(dǎo)出”選項,并輸入一個標(biāo)識符:mysound(名字可任意寫),單擊確定。3、回到主舞臺,選中時間軸的第一楨,按F9打開動作面板?,F(xiàn)在我們要創(chuàng)建一個新的聲音對象,并且連接到庫里的聲音。用來控制聲音。輸入以下腳本:music=newSound();/創(chuàng)建一個名字叫music的聲音對象。music.attachSound("mysound&quo
49、t;);/將這個聲音對象與庫里的標(biāo)識符為“mysound”的聲音連接。4、現(xiàn)在需要在舞臺上放置兩個按鈕分別控制聲音的播放與停止。5、此時,舞臺上將有播放和停止兩個按鈕,選中Play按鈕,打開動作面板,輸入以下腳本:on(release)music.start();/播放聲音選中Stop按鈕,輸入以下腳本:on(release)music.stop();/停止播放聲音6、OK,個簡單的控制聲音播放與停止的例子就完成了,快按Ctrl+回車來測試吧。三、創(chuàng)建一個稍微復(fù)雜的例子,用來滑動按鈕來控制聲音的音量。操作步驟:1、新建一個flash文檔,并按Ctrl+R導(dǎo)入一個聲音文件。2、參照上個例子,打開
50、庫,并把導(dǎo)入的聲音文件設(shè)置一個鏈界標(biāo)識符。這里設(shè)置標(biāo)識符為“mysound”。3、選中舞臺時間軸第一楨,打開動作面板,創(chuàng)建一個新的聲音對象,連接庫中聲音,并播放這個聲音。輸入腳本如下:music=newSound();music.attachSound("mysound");music.start(1,10);/播放聲音,從第一秒開始播放,并循環(huán)10次4、現(xiàn)在需要一個按鈕做為滑動按鈕,用來控制聲音的音量!按鈕可以自己制作或使用公用庫中的按鈕,此例中我使用公用庫中的按鈕。請在舞臺適當(dāng)位置放置一個按鈕實例。5、選中按鈕,打開動作面板輸入以下腳本:on(press)this.startDrag(false,left,top,right,bottom);/開始拖動這個按鈕,并且要規(guī)定它的拖動范圍,分別由四個變量控制,4個變量的初始值稍后設(shè)置。drag=true;/用一個變量來判斷這個按鈕是否被拖動了。如果它被拖動了,變量值為true(真)on(release,releaseOutsi
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新能源企業(yè)勞動保障監(jiān)察與環(huán)境保護合同3篇
- 2024年金融服務(wù)提供與合作合同
- 2024年租賃合同:物業(yè)租賃協(xié)議
- 2024版借款合同書借款合同書
- 棗莊防火涂料噴涂施工方案
- 2024深圳城市綜合體商品房買賣合同書3篇
- 濱州九年級期末數(shù)學(xué)試卷
- 二零二五年度企業(yè)財產(chǎn)分割及債務(wù)重組法律文件2篇
- 2024年網(wǎng)絡(luò)安全防護系統(tǒng)外包服務(wù)協(xié)議
- 2025版建筑施工企業(yè)安全責(zé)任書編制與解讀3篇
- 選礦廠建設(shè)課件
- 部編人教版7-9年級語文目錄
- 人教版小學(xué)數(shù)學(xué)五年級上冊七單元《數(shù)學(xué)廣角-植樹問題》單元集體備課整體設(shè)計
- 中國超重肥胖醫(yī)學(xué)營養(yǎng)治療指南
- 嚴(yán)重精神障礙患者家屬護理教育
- 汽車4S店市場部工作計劃
- 現(xiàn)代營銷學(xué)原理課件
- 德語語言學(xué)導(dǎo)論智慧樹知到期末考試答案2024年
- 拒絕早戀主題班會 課件(34張)2023-2024學(xué)年主題班會
- 離婚協(xié)議書完整版Word模板下載
- 招標(biāo)代理機構(gòu)內(nèi)部監(jiān)督管理制度
評論
0/150
提交評論