版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、FLASH動作腳本詳解 收藏人:王咸美 2013-12-03 | 閱: 轉: | | 分享 FLASH動作腳本詳解一、FLASH腳本基礎入門講解二、按鈕AS的編寫三、影片剪輯的AS編寫四、動態(tài)文本框五、影片剪輯的拖拽六、流程控制與循環(huán)語句七、繪圖及顏色的AS的編寫八、聲音 AS 的編寫與控制九、時間日期的 AS編寫十、點語法以及路徑十一、深入了解時間控制十二、無條件轉移十三、變量十四、運算符(一)十五、變量(二)十六、影片剪
2、輯的屬性十七、再講循環(huán)語句十八、影片剪輯處理函數(shù)十九、復制影片剪輯二十、深入 startDrag()與 stopDrag()二十一、for循環(huán)二十二、while與 do while循環(huán)二十三、循環(huán)語句的嵌套二十四、組件二十五、播放器控制與網(wǎng)頁連接以及動畫發(fā)布輸出二十六、loadVariables命令二十七、影片剪輯的深度二十八、文本框二十九、超文本標簽一、FLASH腳本基礎入門講解認識“動作”面板 在Flash中,動作腳本的編寫,都是在“動作”面板的編輯環(huán)境中進行,熟悉“動作”面板是十分必要的。按【F9】鍵調(diào)出“動作”面板,可以看到“動作”面板的編輯環(huán)境由左右兩部分組成。左側部分又分為上下兩個
3、窗口。左側的上方是一個“動作”工具箱,單擊前面的圖標展開每一個條目,可以顯示出對應條目下的動作腳本語句元素,雙擊選中的語句即可將其添加到編輯窗口。 下方是一個“腳本”導航器。里面列出了FLA文件中具有關聯(lián)動作腳本的幀位置和對象;單擊腳本導航器中的某一項目,與該項目相關聯(lián)的腳本則會出現(xiàn)在“腳本”窗口中,并且場景上的播放頭也將移到時間軸上的對應位置上。雙擊腳本導航器中的某一項,則該腳本會被固定。 右側部分是“腳本”編輯窗口,這是添加代碼的區(qū)域。可以直接在“腳本”窗口中編輯動作、輸入動作參數(shù)或刪除動作。也可以雙擊“動作”工具箱中的某一項或“腳本編輯”窗口上方的【添加腳本】工具 ,向“腳本”窗口添加動
4、作。在“腳本”編輯窗口的上面,有一排工具圖標,在編輯腳本的時候,可以方便適時的使用它們的功能。 在使用“動作”面板的時候,可以隨時點擊“腳本”編輯窗口左側的箭頭按鈕,以隱藏或展開左邊的窗口。將左面的窗口隱藏可以使“動作”面板更加簡潔,方便腳本的編輯。好了,動作面板就介紹這些,有個印象,不要求記住,工具欄上每個工具的作用和功能將在以后的課程中邊用邊熟悉。 如何編寫flash中的腳本 首先,要知道編寫腳本,不需要用戶對AS有完全的了解!現(xiàn)在要考慮的問題是,如何在你的flash中添加編寫腳本?簡單的說,添加腳本可分為兩種:一是把腳本編寫在時間軸上面的關鍵楨上面(注意,
5、必須是關鍵楨上才可以添加腳本)。二是把腳本編寫在對象身上,比如把腳本直接寫在MC(影片剪輯元件的實例)上、按鈕上面。此外,大家也需要簡單理解一下flash是如何執(zhí)行你編寫的腳本的。當你在時間周的關鍵楨上添加了腳本,那么當flash運行的時候,它會首先執(zhí)行這個關鍵楨上的腳本,然后才會顯示這個關鍵楨上的對象。還有一些簡單的知識,AS中的對象都包括什么呢?它可以包含數(shù)據(jù),也可以是舞臺上的電影剪輯,也可以是舞臺上的按鈕等。既然包含了那么多對象,那么每種對象肯定有各自的屬性!比如電影剪輯(movieclip)對象,它的:屬性就有_height(高度),_rotation(旋轉),等,這些屬性不需要你去特
6、意的記憶,當使用的時候可以隨時翻閱腳本字典。在以后的教程中會陸續(xù)給大家介紹一些基礎腳本的使用技巧。二、需要學到的基本AS命令如下:stop()、play()、gotoandplay()、gotoandstop()、nextFrame()、prevFrame();、nextScene()、prevScene();、stopAllSounds(); 按鈕的AS編寫規(guī)則 播放on (release) _root.mc.play();如果要在按鈕身上寫腳本的話,必須使用on(事件)/腳本程序的格式來寫!上面的腳本作用就是:當你在這個按鈕上按一下鼠標(release事件)的時候,就會執(zhí)行下面的
7、_root.mc.play();程序,它的意思是讓舞臺上的mc開始播放!6、同理:咱們選中舞臺上的暫停按鈕,在它上面輸入:on (release) _root.mc.stop()然后依次在快退上輸入:on (release) _root.mc.prevFrame(); /prevFrame表示回到動畫的上一楨在快進的按鈕上輸入:on (release) _root.mc.nextFrame();在停止的按鈕上輸入:on (release) _root.mc.gotoAndStop(1); /跳到mc影片的第一楨,并停止播放!二、按鈕AS的編寫在 flash 中的交互功能一般是由按鈕來完成的。掌
8、握按鈕的編寫規(guī)則也是一個閃客的基本技 能。 OK,現(xiàn)在咱們來說說按鈕腳本如何編寫。上一講中提過,AS 腳本編寫可以寫在時間軸的關 鍵楨上,也可以寫在對象本身上面。按鈕也不例外,既可以寫在時間軸上,也可以寫在按鈕 本身上面。只不過這兩種編寫規(guī)則都要遵循一定的規(guī)矩,這是后話。 現(xiàn)在咱們來做一個例子, 做一個按鈕, 這個按鈕要實現(xiàn)的功能就是打開一個指定的網(wǎng)頁。 (這個例子非?;A,用這個例子來講解按鈕 AS 兩種編寫方法。) 第一種:把腳本寫在按鈕本身。 一、 在舞臺上繪制一個矩形,選中矩形并按 F8,將這個矩形轉換成按鈕元件。二、 編寫動作腳本: 選中按鈕,按 F9,打開動作面板,在專家模式下輸入
9、以下腳本: on(release) getURL(" 現(xiàn)在這個按鈕就實現(xiàn)了一個打開網(wǎng)頁的功能。通過例子你應該注意到,按鈕的 AS 書寫規(guī)則 就是: on(事件) /要執(zhí)行的腳本程序,剛才的例子是用 getURL 來打開一個網(wǎng)頁。你也可以使用腳本程序來 執(zhí)行其他功能,例如跳轉到某一個楨,或載入外部一個動畫文件。 大可以看到,其實就一個 on語句,這個 on語句就是按鈕的 AS 編寫規(guī)則了。需要注意 的是 on 里面的事件,這個事件你可以理解為是鼠標或鍵盤的動作。剛才的例子我們使用的 事件是 release(按一下鼠標)我現(xiàn)在把常用的按鈕事件列出來: 事件名字 說明 Press 事件發(fā)生
10、于鼠標在按鈕上方,并按下鼠標 Release 發(fā)生在按鈕上方按下鼠標,接著松開鼠標時。也就是“按一下”鼠標 Releaseoutside 發(fā)生于在按鈕上方按下鼠標,接著把光標移動到按鈕之外,然后松開 鼠標 Rollover 當鼠標滑入按鈕時 Rollout 當鼠標滑出按鈕時 Dragover 發(fā)生于按著鼠標不放,光標滑入按鈕 Dragout 發(fā)生于按著鼠標不放,光標滑出按鈕 Keypress 發(fā)生于用戶按下特定的鍵盤按鍵時 下面來看看第二種按鈕 AS的編寫方法。 這種方法是把腳本程序寫在時間軸上,而不是按鈕本身上面。 一、 選中按鈕,在下面的屬性面板中為按鈕起一個名字,這里我起了一個 bt 二
11、、 選中時間軸的第一楨,按 F9 打開動作面板。輸入如下腳本: bt.onrelease = function() getURL("http:/ "_blank"); ; 這種編寫 AS 的方法要遵循的規(guī)則就是下面的公式而已:按鈕實例的名字.事件名稱=function() /要執(zhí)行的腳本程序。 大家只要記住這個公式就可以套用了。 按鈕的 AS 就先將到這了,這個可以算是基本技能了。希望大家都能掌握。三、影片剪輯的AS編寫影片剪輯在flash中可以說是使用最多的一種元件了,那么對于它的AS也是不 少。 在講解之前,我還是要重新說一下電影剪輯AS 的編寫規(guī)則,和上次講
12、按鈕一樣, 分為兩種,一種是寫在電影剪輯本身上,一種是寫在時間軸上面。 一、首先我們先來做個簡單的小例子。 或許你不用 AS 就能做出一個小球的移動動畫。但是如果讓你用 AS 來實現(xiàn)小球的移動呢? 下面來看看如何用 AS 來實現(xiàn)吧。 在這個例子里,你首先會了解到如何在電影剪輯本身上編寫 AS,以及編寫規(guī)則。1、 新建立一個影片剪輯元件,里面你就隨便畫一個圓吧。之后把這個影片剪輯拖放到 舞臺之中(也就是創(chuàng)建一個此影片剪輯的實例)。 2、 現(xiàn)在開始編寫腳本,選中這個 MC,按 F9 打開動作面板,按照圖 01 顯示選擇 onClipEvent,之后在顯示的事件中選擇 enterFrame,然后在里
13、面編寫腳本如下: this._x+=5 這個腳本編寫之后應該是: onClipEvent (enterFrame) / enterFrame的意思四以影片幀頻不斷地觸發(fā)此動作 this._x += 5; /this 代表這個影片剪輯自身。_x 表示影片剪輯的X 軸坐標。 呵呵,按下你的 ctrl+回車測試一下吧,一個簡單的移動動畫就搞定了。 從這個例子咱們不難看出,如果把 AS 寫在影片剪輯本身上,那么它是有自己的書寫格 式的。正確的書寫格式就是: onClipEvent (事件) /需要執(zhí)行的腳本程序 這個可以看成是公式,你記住就行了,是寫在影片剪輯身上的。括號里的“事件”其實是 個觸發(fā)器,
14、當事件發(fā)生時,執(zhí)行該事件后面花括號中的語句。,具體有哪些事件,我把它們 都列出來。 - load 影片剪輯一旦被實例化并出現(xiàn)在時間軸中時,即啟動此動作。 - unload 在從時間軸中刪除影片剪輯之后,此動作在第一幀中啟動。處理與 Unload 影 片剪輯事件關聯(lián)的動作之前,不向受影響的幀附加任何動作。 - enterFrame 以影片幀頻不斷地觸發(fā)此動作。 - mouseMove 每次移動鼠標時啟動此動作。_xmouse 和 _ymouse 屬性用于確定當前鼠 標位置。 - mouseDown 當按下鼠標左鍵時啟動此動作。 - mouseUp 當釋放鼠標左鍵時啟動此動作。 - keyDown
15、 當按下某個鍵時啟動此動作。使用 Key.getCode 方法獲取最近按下的鍵的 有關信息。 - keyUp 當釋放某個鍵時啟動此動作。 使用 Key.getCode 方法獲取最近按下的鍵的有關 信息。 - data 當在 loadVariables 或 loadMovie 動作中接收數(shù)據(jù)時啟動此動作。當與 loadVariables 動作一起指定時,data 事件只發(fā)生一次,即加載最后一個變量時。當與 loadMovie 動作一起指定時,獲取數(shù)據(jù)的每一部分時,data 事件都重復發(fā)生。 了解了事件之后,你可以自己試著修改一下腳本,如果讓你們點一下鼠標,舞臺上的圓 就移動一下,該怎么做呢? 關
16、于把 AS 寫在影片剪輯本身的例子先講到這,下面來看看如果把 AS 寫在時間軸上面的話,應該怎么寫。 首先你把剛才的腳本去掉。然后需要為這個影片剪輯實例起一個名字,比如起名為 mc 在選中時間軸的第一楨,打開動作面板,輸入以下腳本: mc.onEnterFrame = function() this._x += 5; /你也可以把這句改為 mc._x+=5 自己想一下為什么。 ; 顯而易見,在時間軸上的寫法就應該套用以下公式: 實例名.事件名稱=function() /腳本程序 需要注意的是,這種寫法的事件名稱不要忘了在前面加一個 on,比如,事件如果是 enterframe的話,你就應該寫成
17、 onenterframe 下面簡單說一下影片剪輯的屬性。比如,影片剪輯有自己的X、Y 軸坐標,有自己的透 明度(_alpha),這些都是它的屬性。 那么如何使用這些屬性呢?你可以使用“點”語法來對屬性進行設置。 把上面的腳本修改一下。 mc.onenterframe = function() mc._x += 5; mc._alpha = random(100); ; 這里我加了一句 this._alpha = random(100),它是設置影片剪輯的透明度的,使用的語句 就是_alpha。后面的 random()函數(shù)是隨機選取一個100 以內(nèi)的數(shù)字作為它的透明度。從這個 句子可以看出,“
18、點”語法使用方法就是:實例名.屬性(mc._alpha),你甚至可以簡單理解為 “點”就是“的”,那么 this._alpha 這句你就可以理解為:影片剪輯 mc的透明度 上面的腳本 mc._alpha = random(100)也可以改為_root. mc._alpha = random(100) 那么,你就可以理解為:舞臺上的影片剪輯 mc的透明度是隨機選擇內(nèi)的值。四、動態(tài)文本框一、flash 中的動態(tài)文本使用方法 在 flash中,文本工具提供了三種文本類型。分別是:靜態(tài)文本、動態(tài)文本和輸 入文本。 下面講解的內(nèi)容屬于動態(tài)文本的 AS 編寫規(guī)則。要創(chuàng)建一個動態(tài)文本非常簡單, 只需要 選中
19、文本工具,然后選擇動態(tài)文本類型,然后在舞臺上拖拽出所需要的 動態(tài)文本框就行了 。二、如何為動態(tài)文本賦值 當在舞臺上拖拽出動態(tài)文本框之后, 可以直接在里面進行文本輸入或粘貼外部文 本內(nèi) 容。那么用 AS 如何來對動態(tài)文本框賦值呢?在這里為大家介紹兩種方法進行 賦值! 1、使用動態(tài)文本的實例名字來賦值 操作步驟: (1)在舞臺上創(chuàng)建一個動態(tài)文本框,并為這個動態(tài)文本實例起一個名字,例如 abc (2)選中時間軸的第一楨,打開動作面板,輸入以下腳本: abc.text = "愛國者安全網(wǎng)" 按下 ctrl+回車就可進行測試了。從這個簡單的例子可以知道,如果要用文本實 例名字 來進行
20、賦值的話,必須使用以下格式:動態(tài)文本實例的名字.text=”需要 賦值的內(nèi)容” 2、使用變量來賦值 (1)在舞臺上創(chuàng)建一個動態(tài)文本框,并為這個動態(tài)文本實例起一個變量名 3800hk。 (2)選中時間軸的第一楨,打開動作面板,輸入以下腳本: 3800hk= "歡迎大家來到愛國者安全網(wǎng)學習!"不難看出,使用變量賦值更為簡單實用!賦值格式為: 變量名=“賦值的內(nèi)容” 以上兩種賦值方法如果內(nèi)容過多需要換行的時候,需要使用行用回車符( “r” 即 ASCII 13)分隔! 三、如何載入外部 txt 文本里的內(nèi)容 當內(nèi)容過多的時候,使用上面的方法并不是太好,我們可以使用下面的方法,從
21、外部獲 取文本資料內(nèi)容!而外部的資料內(nèi)容就放在一個普通的 txt(記事本)文 件中。 具體操作步驟如下: 1、創(chuàng)建一個動態(tài)文本實例,并為這個動態(tài)文本實例起一個變量名 hk 2、選中時間軸的第一楨,打開動作面板,輸入以下腳本: loadVariablesNum("heiying.txt", 0);/載入外部名字叫 heiying.txt 的文本文件,加載 級別為0 3、現(xiàn)在來準備外部的 heiying.txt 文本文件了。注意:要把這個文本文件和你剛 才做的 flash文件放在一個文件夾里! 這個 txt 文件里的資料應該按照如下格式編寫:flash中動態(tài)文本變量的名字=這
22、里就是 所需要的資料內(nèi)容。 對應上面的格式,外部 heiying.txt 中的內(nèi)容為: hk=歡迎大家來到愛國者安全網(wǎng)學習! 。 最后一點,需要將這個文本文件保存為 UTF-8 格式。 4、 完成以上步驟之后,就可以進行測試了。 下面介紹另外一種載入外部文本資料的方法, 并介紹當文本內(nèi)容過多時候,如 何使用滾 動條組件 (1)創(chuàng)建一個動態(tài)文本實例,并并為這個動態(tài)文本實例起一個實例名字 anquan (注: 是實例名而不是變量名)起一個變量名為 hk (2)打開 flash 的組件面板(快捷鍵 ctrl+F7),找到 UIScrollBar(滾動條)組 件。按著 它不動,然后拖放此組件至剛才的動
23、態(tài)文本實例的右部邊緣,如果成 功的話,組件會和文本 框結合在一起! (3)選中舞臺第一楨,編寫如下腳本: tt = new LoadVars();/創(chuàng)建一個 LoadVars 對象的實例,這里的實例名字叫 tt tt.load("heiying.txt");/創(chuàng)建的 tt 實例需要載入的對象是 heiying.txt 文本文件。 tt.onLoad = function(s) /開始載入外部文件,具體格式請按照此例格式。參數(shù) s 是指示 load 操作是否成功完成。如果完成,那么 S 的值就為 true( 真),反之 為 false(假) if (s) anquan.tex
24、t = tt.hk; /如果載入成功, 則 anquan文本框中的內(nèi)容就等于 tt.實例中的 heiying的內(nèi)容! (hk是我們 外部文本文件中的變量。) ;(4) 至于外部的 heiying.txt 還可以使用剛才所創(chuàng)建的文本文件 ,為了測試滾動 條的效五、影片剪輯的拖拽在網(wǎng)上經(jīng)??吹降?flash影片中有的對象可以被鼠標進行拖動。例如有的類似七 巧板的拼圖游戲,控制音量的滑桿等,所使用的就是 flash中的拖拽動作。 一、拖拽命令詳細介紹 、 首先介紹一下開始拖拽命令的詳細用法, 稍后在后面的例子中進行測試。 命令格式: StartDrag(要拖動的影片剪輯,是否鎖定到鼠標位置中央,左,
25、 上,右,下)或寫為要拖動的影片剪輯.StartDrag(是否鎖定到鼠標位置中央,左,上, 右,下) 命令講解:在制作動畫的過程中,上面兩種書寫方法可任選一種。其中 內(nèi)的為可選參數(shù),也就是可以寫,也可以不寫。至于左,上,右,下四個參數(shù)是 用來控制被拖對象的移動范圍。、停止拖拽命令講解 命令格式: 被拖動的影片剪輯實例名.stopDrag() 這樣就可以停止對對象的拖拽動作。 二、實例講解 下面來用一個簡單的例子實驗拖拽命令。 操作步驟: 、新建一個 flash 文檔,并在舞臺上繪制一個圓形。選中圓形并按, 將此圓形轉換為影片剪輯,起名為:圓 。確定后將會在舞臺上創(chuàng)建一個圓的實 例。 、選中此實
26、例,并按打開動作面板。輸入如下腳本: on (press) this.startDrag(true);/當鼠標按下(press)之后,這個實例(因為我們把腳本寫 在實例本身了,所以這里用 this 代替影片剪輯實例的名字)可以被拖拽,使用 命令如上面的命令解釋。對于參數(shù)的選擇方面,這里只填寫了鎖定到鼠標位置 中央,如果想選不鎖定到鼠標位置中央,可以把true改為 false。有興趣的朋友 可以更改為 false看看。 on (release) this.stopDrag();/同樣道理,當鼠標釋放(release)之后,將停止拖拽動作。 、好了,現(xiàn)在讓我們按 Ctrl+回車來測試一下吧,你將會
27、看到舞臺上的圓 被你的鼠標拖動的效果。 、,通過這個例子我們可以簡單的應用拖拽動作了?,F(xiàn)在需要把這個 例子繼續(xù)完成,還記得上面命令講解中的左,上,右,下四個控制拖動范圍的參 數(shù)嗎?現(xiàn)在來制作具有約束拖動范圍的效果。 、現(xiàn)在在舞臺上繪制一個*大小的矩形,注意只要邊框不要填 充。 、如果我們希望在拖動的時候這個圓只能在矩形內(nèi)拖動的話,就要先設置 這個矩形的坐標,并記下矩形四個頂點的坐標(這點很重要!)。,比如,現(xiàn) 在此例子中的矩形的四個頂點分別如上圖所示。那我們要取的四個參數(shù)就應該 是:左,上,右,下 現(xiàn)在打開動作面板,修 改剛才的腳本如下:on (press) this.startDrag(tr
28、ue, 50, 100, 250, 200);/這里我們就使用剛才確定好的個參數(shù)。 個點的參數(shù)就對拖動對象實現(xiàn)了一個矩形區(qū)域的移動約束! on (release) this.stopDrag(); 、好了,按Ctrl+回車去測試吧! 好了,關于拖拽的講解先到這里,下面我們來學習如何結合著拖拽動作來檢 測對象之間的碰撞! 三、碰撞命令的講解 命令格式: 目標影片剪輯的實例.hihkest(被拖拽的實例) 這個是比較 簡單的檢測碰撞命令 目標影片剪輯的實例.hihkest(被拖拽實例的軸坐標,被拖 拽實例的軸坐標,對象的矩形區(qū)域范圍還是對象本身范圍) 這個是比較復 雜點的檢測碰撞命令 命令解釋:
29、以上兩個命令都是用來檢測碰撞的,可以根據(jù)需要選擇不同的 命令。重點解釋一下對象的矩形區(qū)域范圍和對象本身范圍(上面的命令中,false 表示對象的矩形區(qū)域范圍,true表示對象本身的范圍) 四、碰撞命令與拖拽命令的結合使用 (一)、下面通過簡單的例子來學習碰撞命令(我們先來學習如何檢測是否 碰到對象的矩形區(qū)域范圍) 、新建一個 flash 文檔,在舞臺上繪制一個圓形。選中圓形并按將它 轉換為影片剪輯,起名:圓 。這樣就在舞臺上創(chuàng)建了一個圓的實例。 、選中此實例,為它起一個名字,此例起名為:yuan 、選擇文字工具,并選擇文字類型為“動態(tài)文本”,在圓的實例下面拖繪出一個 動態(tài)文本框。并起一個變量名
30、為:hk 、選中時間軸的第一楨,按打開動作面板,輸入以下腳本: _root.onEnterFrame = function() /這個是在時間軸上的編寫規(guī)則,解釋為舞臺上每楨都執(zhí)行下面的腳本 (onEnterFrame)。 if (_root.yuan.hitTest(_root._xmouse, _root._ymouse, false) /根據(jù)上面命令的講解,這個語句就是檢測碰撞了。如果鼠標碰到舞臺上 yuan這個實例的矩形區(qū)域范圍的話,就執(zhí)行下面的腳本。 hk = "接觸矩形區(qū)域范圍" /動態(tài)文本框就顯示出“接觸矩形區(qū)域范圍” else hk = "沒有接觸
31、到矩形區(qū)域范圍" /如果鼠標沒有碰到舞臺上 yuan 這個實例的矩形區(qū)域范圍的話,就顯示 沒有接觸到矩形區(qū)域范圍。 ; 現(xiàn)在可以按Ctrl+回車去測試我們的成果 (二)、拖拽碰撞檢測 現(xiàn)在再來一個例子講解拖拽碰撞檢測, 想偷懶的話可以通過修改上面例子的 代碼來學習。 、現(xiàn)在稍微修改一下上面的例子,以便讓我們學習拖拽碰撞檢測,在上面 例子的舞臺上繪制一個矩形,并把這個矩形轉換成電影剪輯,起名為:矩形 。 這樣就在舞臺上又創(chuàng)建了一個矩形的實例,現(xiàn)在為這個矩形實例起一個名為: juxing 。 、選中這個矩形實例,打開動作面板,輸入可以拖拽這個實例的腳本。如下: on (press) th
32、is.startDrag(true); on (release) this.stopDrag(); 這個腳本就是為了能拖動這個矩形實例。 具體解釋請回顧第一個拖動對象例 子的腳本說明。 、現(xiàn)在來修改腳本,選中時間軸的第一楨,按打開動作面板,你將會 看到上個例子的碰撞檢測腳本,把它修改為如下腳本: _root.onEnterFrame = function() if (_root.yuan.hitTest(_root.juxing) hk = "碰到了" else hk = "沒有碰到" 這個腳本和上次的碰撞檢測腳本類似,只不過不需要再書寫軸和軸,也 不用
33、寫是否碰到矩形區(qū)域范圍。簡單吧 現(xiàn)在又到了測試階段了,去觀看你的成果六、流程控制與循環(huán)語句眾所周知,flash中動畫依靠的是時間軸,在沒有腳本的情況下,動畫會依照時 間軸從第一幀不停的播放到最后一幀,然后始重復播放或者干脆停止。為了能更 好的控制動畫,就必須使用腳本語句。而要想使動畫具有邏輯判斷的功能,就要 使用流程控制和循環(huán)控制語句了! 下面通過幾個簡單的小例子來學習流程與循環(huán) 控制語句。 一、流程控制語句 所謂流程控制,無非就是我們想控制動畫程序的執(zhí)行順序而已。我們可以讓 flash根據(jù)一些特定的條件,來決定要執(zhí)行哪個程序。這樣就好象給了程序一些 判斷的機制。 if.else控制語句 根據(jù)
34、英文的意思,大家可以簡單的理解上面的控制語句:如果.就.否 則.就. 下面來看看這個流程控制語句的書寫格式。if(條件) /條件成立的話,就執(zhí)行這里的程序。 else /條件不成立的話就執(zhí)行這里的程序。 下面重點說一下 if 后面括號內(nèi)的條件。這個條件可以是一個固定的值,也 可以是一個變量或表達式。如果條件成立的話,也就是條件為真(true),就會 執(zhí)行 if 后面的程序,如果條件不成立,也就是條件為假(false),就會執(zhí)行 else里的程序。例如:有這么一個條件,A>B 將這個表達式代入if后面的括號 內(nèi), 這個流程語句的意思就變成: 如果A>B的話, 就執(zhí)行第一個大括號內(nèi)的程
35、序, 如果不大于,就將執(zhí)行else后面大括號內(nèi)的程序。 實例講解: 、新建一個flash文檔,在舞臺上繪制一個圓,選中圓并按轉換成影 片剪輯,起名為:圓 這樣就在舞臺上創(chuàng)建一個圓的實例。 、選中舞臺上的實例,按打開動作面板,輸入如下腳本: onClipEvent (enterFrame) if (this._x<400) /流程條件控制語句,如果這個圓的實例的軸坐標小于,就執(zhí)行后 面的程序。 this._x += 5;/讓這個圓的坐標向右移動個象素 else this._x = 0;/控制語句,如果剛才的條件不成立。也就是圓實例的坐標不小于,就 讓它的坐標為 上面的腳本是一個非常簡單的流
36、程控制語句,根據(jù)實例的坐標來進行判斷。因為我們 使用了 enterFrame事件,所以 flash會不停的執(zhí)行下面 if.else語句。 、測試影片。會看到圓不停的向右移動,當它的坐標大于或等于的時候,程 序會把它的坐標重新更改為。 二、循環(huán)控制語句 所謂的循環(huán)語句,其實也是用條件來控制的,只要條件成立,那么,程序就會不停的執(zhí) 行下去,一直執(zhí)行到條件不成立為止! 常用的循環(huán)語句包括 while 循環(huán)、for 循環(huán)等。因 為篇幅有限,下面只重點講解 for 循環(huán)的使用方法。 For 循環(huán)命令格式: for(初始變量;條件語句;迭加命令語句) /用戶自己編寫的腳本。 首先強調(diào)一點,for 語句的括
37、號內(nèi)有三個項目,必須要用分號間隔開! 初始變量:循環(huán)語句也是用條件是否成立來控制的,通常我們用一個變量來控制程序執(zhí) 行的次數(shù)。那么,這個初始變量就要先定義一個值。要注意的是,初始變量這個項目只執(zhí)行 一次! 條件語句:這個項目就是我們的判斷語句了。如果這個項目判斷為真(true),也就是 條件成立了。它就直接跳進大括號內(nèi)執(zhí)行里面的程序!反之,如果條件為假(false), 它就直接跳出這個 for 語句了。 迭加命令語句:接上面的條件語句,如果條件語句成立,會執(zhí)行內(nèi)的程序,那么執(zhí) 行完程序之后,就要回來執(zhí)行迭加命令語句了。通常它就用來增加或減少剛開始時的初始變 量的值。 實例講解: 、新建一個 f
38、lash 文檔,在舞臺上繪制一個圓,選中圓并按轉換成影片剪輯,起 名為:圓 這樣就在舞臺上創(chuàng)建一個圓的實例。 、為這個實例起名為:yuan 、添加一個新的層,并選中新層的第一幀,按打開動作面板,輸入如下腳本: 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._alp
39、ha = random(100); 如果大家實在覺得 for 語言很難讀懂的話,你可以按照 for 語言執(zhí)行的順序把 i=1 代入程序 走一遍,可以幫助你理解程序。例如:當 i 等于的時候,程序開始判斷它是否小于,那 么肯定小于了,條件為真,就執(zhí)行內(nèi)的復制程序,同時復制出來的新實例的名字就 變成了 yuan1 ,接著就是設置 yuan1 的坐標和透明度。之后,for 語句開始回去執(zhí)行 i+, 此時,i 的值就變?yōu)榱恕H缓笥珠_始循環(huán)判斷執(zhí)行下去.(你可以算一下,這個 for 循環(huán) 總共循環(huán)了幾次呢?答案是次。) 、選中時間軸的第幀,按插入一關鍵幀,打開動作面板輸入以下腳本: gotoAndPla
40、y(1); 讓 flash播放到第幀的時候返回第幀再來執(zhí)行 for 循環(huán)語句。 、測試效果吧,你會看到舞臺上會循環(huán)次復制出個圓。 希望大家能通過這兩個簡單的例子掌握流程控制語句和循環(huán)控制語句七、繪圖及顏色的AS的編寫在使用 flash 的過程中,難免會進行繪圖的操作。除了用工具面板上的工具繪制圖形之外, 我們也可以使用 ActionScript 來繪制圖形。 如何繪制線段及命令解釋 lineStyle(粗細,顏色,透明度) /設置繪制圖形的線條粗細、顏色和透明度 Moveto(坐標,坐標) /設置繪圖線條的起點坐標 lineto(坐標,坐標) /設置線條的結束坐標 現(xiàn)在就用剛才的三個命令在舞臺
41、上繪制出來一個*大小的矩形。 步驟: 、新建立一個 flash文檔。 、既然要繪制一個*大小的矩形, 我們就要先確定矩形個頂點的坐標,然后就可以使用 lineto命令進行編寫了。 、選中時間軸的第一楨,打開動作面板?,F(xiàn)在已經(jīng)確定了矩形的個頂點,那么我 們就可以來編寫腳本命令了,請輸入以下腳本: _root.lineStyle(1, 0x000000, 100);/設置線條的粗細,顏色和透明度 _root.moveTo(50, 50);/設置開始點的坐標。 _root.lineTo(350, 50); _root.lineTo(350, 150); _root.lineTo(50, 150);
42、_root.lineTo(50, 50); /設置結束點坐標,整個矩形繪制完畢 相信大家通過上面的命令就很容易的用繪制出所需要的形狀,充分發(fā)揮你的想象 力,可以通過 lineto命令來設置多個點,從而創(chuàng)造出各種各樣的形狀。 熟悉了繪制線條的命令之后我們來用一個例子加深印象。 操作步驟: 、新建立一個 flash 文檔,在舞臺上繪制一個圓,選中它并按轉換成影片剪輯, 起名為:圓 。 、打開庫面板,請將影片剪輯“圓”在舞臺上再拖放一個實例,使舞臺上存在兩個圓的 實例。 、現(xiàn)在為舞臺上兩個實例分別起名字為 a和 b 、選中時間軸第一楨,打開動作面板,輸入以下腳本: function draw() /
43、自己定義一個函數(shù),這個函數(shù)起名為 draw(可自定),函數(shù)的功能是要實 現(xiàn)以 a 實例的坐標為起點,向 b 實例繪制線條。 _root.hkear();/清除舞臺上繪制的線條。 _root.lineStyle(1, 0x000000, 90);/設置線條的粗細,顏色和透明度。 _root.moveTo(a._x, a._y);/以 a實例的坐標為起點開始繪制線條。 _root.lineTo(b._x, b._y);/以 b 實例的坐標為繪制線條的結束點。 draw();/執(zhí)行函數(shù) draw,它將會在a 與 b 之間繪制出一條黑色的線條。 解釋:為了減輕編寫的工作量和程序的重復率,可以將某些功能
44、定義為一個函數(shù), 例如上面的 draw(),在使用的時候,直接執(zhí)行定義過的函數(shù),就可以完成函數(shù)的功能。 、現(xiàn)在創(chuàng)建拖動效果,選中舞臺上的 b 實例,打開動作面板,輸入以下腳本: on (press) /點擊此實例,開始拖動 this.startDrag(true); on (release) /釋放鼠標,停止拖動 this.stopDrag(); onClipEvent (mouseMove) /當鼠標移動,也就是這個 b 實例移動的時候,就執(zhí)行里面的程 序。 _root.draw();/執(zhí)行舞臺上定義過的 draw()函數(shù),開始在 a 與 b之間繪制線條。 updateAfterEvent(
45、);/強制更新畫面,是整個動畫更加流暢。 按 Ctrl+回車測試動畫效果。 二、顏色命令講解 setRGB() 用來設置實例的顏色值,注意,這個值用進制表示,例如 0x000000 (黑色) getRBG() 獲取實例的顏色值 下面用一個相對簡單的例子來說明顏色命令的使用以及如何填充顏色 要想使用顏色命令,我們必須先構建一個 Color 對象。方法就是 自定義名字 = new Color("要改變顏色的對象"),構建完 color 對象之后,我們就能使用 setRGB 或 getRGB 來設 置或獲取顏色了。 步驟: 、新建立一 flash文檔,背景大小為* 、選中時間軸第
46、一楨,打開動作面板,我們現(xiàn)在要用來幫助我們創(chuàng)建一個影片剪 輯的實例。所用到的命令為: createEmptyMovieClip("實例名稱",深度)。創(chuàng)建一個影片剪輯實例,并起名為 hk。輸入下面 腳本。 _root.createEmptyMovieClip("hk", 1); /使用創(chuàng)建命令在舞臺上創(chuàng)建一個名字叫 hk的影片剪輯實例,深度為 1 接下來我們要對這個 hk 實例進行繪制圖形和填充圖形!現(xiàn)在我們用繪制一個 *大小的矩形,并且把這個矩形填充為黑色,腳本如下: with (hk) /使用 with命令設置 hk的各個屬性 beginFill(0
47、x000000, 85); /開始填充這個 hk實例,顏色為黑色,透明度為 85 lineStyle(1, 0x999999, 100); /設置這個實例的邊框粗細為 1,顏色為灰色,透明度為 100moveTo(50, 50); /設置繪制線條的起點坐標 lineTo(350, 50); lineTo(350, 150); lineTo(50, 150); lineTo(50, 50); /結束繪制,將在舞臺上繪制出一個 300*100 大小的矩形。 endFill(); /結束填充,與 beginFill()命令對應。 OK,現(xiàn)在我們就已經(jīng)創(chuàng)建了一個黑色的矩形。現(xiàn)在我們要繼續(xù)實現(xiàn)變色的功能
48、,也就 是當鼠標移動的時候,這個矩形會隨機變換顏色!就需要用到我們的構建 Color 對象的命令 了。腳本如下: _root.onMouseMove = function() /當鼠標移動的時候就執(zhí)行下面的腳本命令。 hk_color = new Color("hk");/構建一個名字叫 hk_color 的 Color 對象。 yanse = "0x"+random(100)+random(100)+random(100);/用一個變量 yanse來獲取一個數(shù)值, 這個數(shù)值就是顏色值 hk_color.setRGB(yanse);/設置矩形的顏色。 ;
49、 好了,這個例子是完全由腳本編寫而成,所有腳本都在時間軸的第一楨 、按 Ctrl+回車來測試你的影片吧會看到矩形會隨著鼠標的移動而不斷進行顏色變化。八、聲音 AS 的編寫與控制一個好的 flash作品,缺少了聲音,就如同人不會講話一樣。而 flash 中對聲音的支持也非常不錯,除了可以使用時間軸放置聲音文件之 外,我們還可以使用來更加準確的控制聲音! 一、FLASH 中如何創(chuàng)建聲音控件 如果想控制動畫中的聲音,我們可以使用 flash中的 sound 對象,通過 sound 命令創(chuàng)建一個新的 sound 對象。之后再用 attachSound 命 令連接到庫里的聲音,就可以用來控制動畫中的聲音
50、了。 常用命令講解: new Sound() 此命令用來創(chuàng)建一個新的 sound 對象,有了 sound 對象我們才能用來控制聲音。 attachSound("庫中的聲音") 此命令可以使我們創(chuàng)建的聲 音對象連接到庫里的聲音,以便進行控制。 start(從第幾秒開始播放, 循環(huán)次數(shù)) 此命令可以是 聲音開始播放,里面的兩個參數(shù)是可選的。 stop() 停止聲音的播放。 setVolume(音量級別) 此命令可以控制聲音的音量高低, 音量級別只能是從之間的數(shù)字。 現(xiàn)在我們也應該用先做一個簡單的小例子了。 二、創(chuàng)建一個簡單的聲音播放動畫,可以實現(xiàn)簡單的開始與停止 播放聲音。 操
51、作步驟: 、新建一個 flash文檔,按 Ctrl+R(文件導入)導入一個聲音 文件,聲音文件可以是 MP3 或 WAV 格式的。聲音文件導入之后,在舞臺上是看不見的,必須打開庫才能看到我們導入的聲音。 、 選中庫中的聲音文件, 單擊鼠標右鍵, 在彈出的菜單中選擇“鏈 接.”將會彈出一個鏈接的對話框,請勾選“為動作腳本導出”和“在第 一幀導出”選項,并輸入一個標識符:mysound (名字可任意寫), 單擊確定。 、回到主舞臺,選中時間軸的第一楨,按打開動作面板?,F(xiàn) 在我們要創(chuàng)建一個新的聲音對象,并且連接到庫里的聲音。用來控制 聲音。輸入以下腳本: music = new Sound();/創(chuàng)
52、建一個名字叫 music 的聲音對象。 music.attachSound("mysound");/將這個聲音對象與庫里的標識符為 “mysound”的聲音連接。 、現(xiàn)在需要在舞臺上放置兩個按鈕分別控制聲音的播放與停止。 、此時,舞臺上將有播放和停止兩個按鈕,選中 Play按鈕,打開 動作面板,輸入以下腳本: on (release) music.start(); /播放聲音選中 Stop 按鈕,輸入以下腳本: on (release) music.stop(); /停止播放聲音 、,一個簡單的控制聲音播放與停止的例子就完成了,快 按 Ctrl+回車來測試吧。 三、創(chuàng)建一個
53、稍微復雜的例子,用來滑動按鈕來控制聲音的音量。 操作步驟: 、新建一個 flash文檔,并按 Ctrl+R 導入一個聲音文件。 、參照上個例子,打開庫,并把導入的聲音文件設置一個鏈界 標識符。這里設置標識符為“mysound”。 、選中舞臺時間軸第一楨,打開動作面板,創(chuàng)建一個新的聲音 對象,連接庫中聲音,并播放這個聲音。輸入腳本如下: music = new Sound();music.attachSound("mysound"); music.start(1, 10);/播放聲音,從第一秒開始播放,并循環(huán)次 、現(xiàn)在需要一個按鈕做為滑動按鈕,用來控制聲音的音量!按 鈕可以自
54、己制作或使用公用庫中的按鈕, 此例中我使用公用庫中的按 鈕。請在舞臺適當位置放置一個按鈕實例。 、選中按鈕,打開動作面板輸入以下腳本: on (press) this.startDrag(false, left, top, right, bottom);/開始拖動這個按鈕, 并且要 規(guī)定它的拖動范圍,分別由四個變量控制,個變量的初始值稍后設 置。 drag = true;/用一個變量來判斷這個按鈕是否被拖動了。如果它被拖 動了,變量值為 true(真) on (release, releaseOutside) this.stopDrag();/當松開按鈕或在按鈕外部松開,就停止拖動。并且下 面的 drag 變量為假,表示按鈕沒有被拖動。 drag = false; 、再次選中這個按鈕,并按鍵將它轉換成一個影片剪輯!起 名為:控制音量。也就是“控制音量”這個影片剪輯里面包含了剛才的 按鈕。 、選中舞臺上這個控制音量影片剪輯的實例,打開動作面板, 現(xiàn)在要設置拖動范圍的個初始值和設置音量大小控制。 請輸入以下 腳本: onClipEvent (load) /當這個 flash 動畫一開始,就設置下面?zhèn)€變量 的初始值。為了使按鈕只能上下拖動,所以,拖動范圍的左、右都固 定!只能讓按鈕在上下象素以內(nèi)拖動。 top = _y; left = _x; right = _x; b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度遠程英語教育兼職外教合同3篇
- 二零二五年酒店員工福利待遇轉讓合同示例3篇
- 二零二五版寄賣合同范本:農(nóng)產(chǎn)品寄售協(xié)議書3篇
- 二零二五版植物營養(yǎng)肥料試驗與研究服務合同3篇
- 二零二五年度酒類批發(fā)市場租賃銷售合同2篇
- 二零二五年度耕地承包與農(nóng)村土地承包權登記發(fā)證合同2篇
- 二零二五年度紅色文化遺址保護與修復合同3篇
- 二零二五版躉購電合同:電力批發(fā)市場交易合同2篇
- 二零二五版高端社區(qū)地下車庫經(jīng)營權轉讓合同3篇
- 二零二五年度智能化辦公大樓安全防范系統(tǒng)合同2篇
- 【傳媒大學】2024年新營銷
- 乳腺癌的綜合治療及進展
- 【大學課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025屆廣東省佛山市高三上學期普通高中教學質(zhì)量檢測(一模)英語試卷(無答案)
- 自身免疫性腦炎課件
- 人力資源管理各崗位工作職責
- 信陽農(nóng)林學院《新媒體傳播學》2023-2024學年第一學期期末試卷
- 2024建筑公司年終工作總結(32篇)
- 信息安全意識培訓課件
- 2024年項目投資計劃書(三篇)
- 配電安規(guī)課件
評論
0/150
提交評論