flash語言基礎(chǔ)教程_第1頁
flash語言基礎(chǔ)教程_第2頁
flash語言基礎(chǔ)教程_第3頁
flash語言基礎(chǔ)教程_第4頁
flash語言基礎(chǔ)教程_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

flash語言基礎(chǔ)教程flash語言基礎(chǔ)教程AS基礎(chǔ)做過Flash動畫的Flash愛好者們都知道,要做好一個Flash動畫,AS是必不可少的,即使只是很簡單的幾句代碼也能起到整個Flash畫龍點睛的作用。這里我只簡單的介紹一下AS的基本常識。首先我們要了解AS要寫在什么地方,什么時候AS會被觸發(fā)執(zhí)行。1、幀:寫在關(guān)鍵幀上面的AS,當時間軸上的指針走到這個關(guān)鍵幀的時候,就寫在這個幀上面的AS就被觸發(fā)執(zhí)行了。常見的例子有在影片結(jié)尾的幀寫上stop()等。操作方法就是點選關(guān)鍵幀,然后打開AS面板。2、按鈕:不同于幀上面的AS,按鈕上面的AS是要有觸發(fā)條件的。要把AS寫在按鈕上,操作方法是點選目標按鈕,然后打開AS面板。舉個例子能說的更明白。假設(shè)有一個動畫,要讓它在播放完同時停止,那么,你要做的就是在這個動畫的最后一幀寫ASstop();再假設(shè)有個按鈕,效果是按下按鈕后停止播放,那么步驟如下。做一個按鈕,放到主場景,點選按鈕,然后打開AS面板?,F(xiàn)在如果也在按鈕上寫stop();那么,輸出的時候就會提示錯誤。正確的應該這樣寫on(release){stop();}這里要比幀的動畫多這些代碼:on(release){},整個代碼翻譯過來就是:當(松開){停止}紅色的代碼表示鼠標的觸發(fā)事件事件之一,這里用的是release松開,按鈕的常用事件:release松開releaseOutside在按鈕外面松開press按下rollOver鼠標進入按鈕的感應區(qū)rollOut鼠標離開按鈕的感應區(qū)現(xiàn)在很明確了:寫在按鈕上面的AS一定就是這種格式的:on(事件){要執(zhí)行的代碼}3、MC(電影剪輯)如果你看懂了上面的內(nèi)容,那么寫在MC上面的AS和寫在按鈕上的大同小異。操作方法就是點選MC,然后打開AS面板??磦€例子onClipEvent(load){stop();}同樣,MC需要一個事件來觸發(fā)AS的執(zhí)行。翻譯這段代碼就是當剪輯(載入){停止}紅色代碼同樣表示一個事件。MC的事件有下面這些:load載入,當MC出現(xiàn)的時候執(zhí)行。也就是除非卸載這個MC,否則load事件內(nèi)的代碼只執(zhí)行一次。unload卸載,當MC卸載的時候執(zhí)行。enterFrame存在的每個幀。在MC存在的每個幀都要執(zhí)行一次代碼。如果你的場景有100個幀,有個MC從41幀開始出現(xiàn)到100幀才消失,那么這個MC上面的代碼執(zhí)行了60次。mouseDown按下鼠標,在場景內(nèi)任何地方都算。和按鈕不一樣的地方。mouseMove移動鼠標,只要移動鼠標就執(zhí)行代碼mouseUp松開鼠標同樣你要明確:寫在MC上的代碼一定總是這種格式:onClipEvent(事件){代碼}看到這里,如果你明白的寫在幀、按鈕、MC上的代碼有什么不一樣,任務就算完成了AS語法篇看過我的第一個教程--基礎(chǔ)篇之后,現(xiàn)在你對AS的存在位子有了一定的概念了吧?如果還沒有,那么去復習一下吧土人系列AS入門教程--基礎(chǔ)篇接下來我要講的是AS的語法。首先要讓大家明白的是:AS語法的大小寫是敏感的。如:gotoAndPlay()正確gotoAndplay()錯誤。關(guān)鍵字的拼寫必須和語法一致,要做到很容易,因為在Flash的AS面板里面,關(guān)鍵字會有不一樣的顏色顯示。很多Flash小鳥們也許要開始埋怨,記不住咋辦?我這里有個辦法,就是背。不要流下委屈的淚水,俺們都是這么走過來的。多用兩次你就記住了。這里說一下,我們要從開始就養(yǎng)成編程的好習慣,如在每個語句后面都加上分號,有可能的話,盡量給復雜的語句加上注釋。注釋的例子2023-10-2322:32回復114.104.34.*2樓//這個是注釋,但是只能有一行/*這個也是注釋,可以寫很多行*/接下來,介紹幾個類型的語法。1、幾個常用的控制場景的方法,如play();//讓時間軸的指針播放stop();//停止時間軸的指針在程序觸發(fā)時候的那個幀gotoAndPlay();//讓指針跳轉(zhuǎn)到某個幀,然后繼續(xù)播放gotoAndStop();//讓指針跳轉(zhuǎn)到某個幀,停止在那個幀nextFrame();//往下走一幀prevFrame();//往前走一幀上面的都是方法。方法?解:打個比方,我們管吃飯叫作一種方法,用來解決肚子餓這個問題。我們管stop()叫做一種方法,用來解決時間軸指針停下來的問題。我們管上面的幾個東西叫方法,用來解決時間軸指針運動的問題。2、控制屬性的語法。有很多,我列幾個_x_y_alpha_width_name等等屬性上面的都是屬性屬性?解:打個比方。我們管你的身高叫做屬性,用來標識你的高度。我們管你的體重叫屬性,用來標識你的質(zhì)量。我們管_x叫屬性,用來標識目標的X軸坐標。我們管_alpha叫屬性,用來標識目標的透明度我真羅嗦啊,唉。3、控制語句流程的語法,如if(條件){//條件滿足執(zhí)行這里的代碼}else{//條件不滿足執(zhí)行這里的代碼}for(i=0;imyMCbutton-myBtn現(xiàn)在我們假設(shè)主場景是房子,MC是桌子,按鈕是書,那么分別怎么表達房子,桌子,書呢?如下_root房子_root.myMc房子.桌子_root.myMc.myBtn房子.桌子.書2023-10-2322:32回復114.104.34.*3樓這里的_root是Flash的關(guān)鍵字,表示主場景的Timeline。很容易理解對不。這里的房子,桌子,書都是我們要理解的“對象”。當你找到這個對象后,才能對對象進行操作,才能給對象施加方法。比如,我現(xiàn)在要打掃房子,打掃是方法,但對象是房子,表達式是這樣:房子.打掃()如果你不能正確的表達房子這個對象,你的打掃也就不能正確的實施了。*說明:這里為什么要在打掃后面加()呢?因為打掃是方法不是對象,為了讓Flash知道這是個方法,我們必須加上(),要不然它會以為房子里面有“打掃”這個東西?,F(xiàn)在,我們可以很容易的對房間里面的各個東西進行操作,如房子.打掃();房子.木桌子.整理();房子.玻璃桌子.打碎();房子.書桌.書.看();等等,相信你把它們”翻譯”成AS代碼沒什么問題吧比如要主場景停止播放,就是_root.stop();要MC停止播放,就是_root.myMc.stop();現(xiàn)在說說相對路徑。還是上面的例子。假如給你下了一個命令:修理房子里面的紅色的椅子。那么怎么表達呢?就是:房子.紅色椅子.修理()無論給你下命令的人在哪里告訴你的,你都會知道要修理的椅子是哪一張。但是他如果這么說:修理你現(xiàn)在坐的這張椅子。紅色的?還是藍色的?這就要取決于你坐在哪個椅子上了。那么相對的表達式就是我坐的椅子.修理();這里為什么不這么寫呢:房子.我坐的椅子.修理()這么寫是錯的,因為我坐的椅子是不固定的,我說不定把椅子搬到房子外面去坐,那這個表達式就錯了,因為椅子根本就不在房子里面。換過來用Flash實例說明?,F(xiàn)在我想讓主場景下的myMC在一開始就不要播放,而是先停止。那么你有什么辦法呢?我你猜想到的辦法可能就是在主場景放入這個MC的那個幀寫上:_root.myMc.stop();這個是對的。但是一旦myMc的名字一變,你就得跟著改這句話了。有沒有辦法不管這個“MC”的實例名不管怎么改,都會被我們同樣一句的AS找到?當然可以,前提是你的AS必須“坐在這個MC上”。進入Mc的編輯狀態(tài),在Mc的Timeline的第一幀寫上this.stop();這里的this也是Flash的關(guān)鍵字,這個this指AS所在的這條Timeline.現(xiàn)在不管你這個MC放在哪里,命名是什么,我都不管,反正肯定會停下來。為什么,因為AS正“坐在MC上”。如果你在這里寫上_root.stop();那就錯了。為什么?仔細想想。這個this就是相對路徑的關(guān)鍵字之一。你必須要仔細理解它。另外的一個關(guān)鍵字就是_parent。如果你理解了this,那么_parent并不難理解。舉例:還是哪個假設(shè)房子(_root),桌子(mc_zhuozi),書(mc_shu)他們的關(guān)系是(括號內(nèi)為mc實例名)房子.桌子.書_root.mc_zhuozi.mc_shu在mc_zhuozi的timeline里面寫_parent.打掃();意思就是打掃房間;在mc_shu的timeline里面寫_parent.打掃();意思就是打掃桌子。_parent也就是父級。桌子的_parent就是房子的timeline,書的_parent也就是桌子的timeline。點的后面的對象的_parent就是點前面的對象。今次就到這吧,回顧下:點語法學會表達對象學會用絕對路徑和相對路徑表達對象2023-10-2322:32回復114.104.34.*4樓1.控制類動作,這些動作是在FLASH最常用到的動作:gotoAndPlay(x)跳轉(zhuǎn)并播放,他的作用是跳轉(zhuǎn)的指定的影格并播放。參數(shù)X為要跳至的影格,如gotoAndPlay(1)就是跳至第一個影格并播放。Play():開始播放影片。stop():停止播放影片。getURL(“x”):通過瀏覽器或者其他程序調(diào)用參數(shù)X的url,如getURL(“mailtg@/doc/e32915515.html,”)--就是給我寫信了。stopAllSounds():停止所有聲音。toggleHighQuality():將畫質(zhì)切換到高品質(zhì)。print(target,type):打印影片剪輯,其中target為內(nèi)容名稱,type為類型。fscommand(command,arguments):發(fā)送FScommand到影片中,如fscommand(“quit”)就是退出影片播放。load/unloadMovieNum(““,0):加載/卸載影片。tellTarget(target):通知目標,用來控制以定義名稱的影片播放,(target)為目標。setProperty(target,property,value):設(shè)定目標對象屬性值,property為屬性名,value為屬性值。在ActionScript中包含的屬性是很豐富的,我們在下面的屬性篇有專門的介紹。delete:刪除變量或者對象set(name,value):定義value為變量值loadVariables(url,target,method):從URL中接受數(shù)據(jù),一般用在讀取外部的ASP、CGI、PHP程序。(我們做聊天室或者論壇就是靠的他了)2.判斷類動作if():假設(shè)...則(基本上在什么語言里都有的語句。如果你連這個都看不懂的話,最好還是去看看編程的書)else:與if聯(lián)用,如果表達式正確則執(zhí)行if后面的語句,如果表達式不正確則運行else后面的語句。ifFrameLoaded():判斷動畫是否已經(jīng)加載return():在循環(huán)函數(shù)中返回值3函數(shù)類動作functionname():定義一系列的子程序,可以在其他的地方調(diào)用call(frame):調(diào)用指定的影格的子程序var:對本地變量進行定義4循環(huán)類動作while、for、dowhile:反復執(zhí)行循環(huán)體內(nèi)的程序continue:在嵌套循環(huán)中跳過終止循環(huán),繼續(xù)下一個循環(huán)break:終止循環(huán)二、運算符篇ActionScript中為我們提供了大量的運算符,方便了我們程序的編寫。其中包括算術(shù)運算符、邏輯運算符、字符串運算符、位運算符和混合運算符。算術(shù)運算符:+(加)、-(減)、*(乘)、/(除)、=(等于)。例如a=10,b=4,c=a*b,c的值就是40邏輯運算符:==(等于)、(不等于)、!(不等于)、(大于)、=(大于或者等于)、--(變量值減1)、++(變量值加1)、%(取余)、typeof(返回表達式類型)、void(返回不確定值)、and、(邏輯與運算)、&&(邏輯與運算)、||(邏輯或運算)、!(邏輯否運算)、not(邏輯否運算)。在算術(shù)運算符中的等于是賦值,在邏輯運算符中的等于是判斷是否相等。例如if(i==1){play();},就是判斷i是否等于1。遞增運算符++和2023-10-2322:32回復114.104.34.*5樓遞減運算符--可以放在變量前后使用并且放在變量前后使用效果并不一樣,放在變量前使用時表示變量在使用前+/-1,放在變量后使用表示變量在使用后+/-1。(如果還是不太明白,你只好去翻C語言書看看吧)字符串運算符:add(連接前后兩字符串)、eq(判斷兩字符串是否相等)、ne(判斷兩字符串是否不等)、lt(小于)、gt(大于)、le(小于或者等于)、ge(大于或者等于)。在表達式中被”“包含起來的符號就被認為是字符串,如a=\’123\’add”abc”,a的值就是”123abc”。在字符串運算中ActionScript會自動把數(shù)字轉(zhuǎn)化為字符串,運算符對我們后面的制作是十分用幫助的。三、函數(shù)篇在任何一種編程語言中函數(shù)都是不可缺少的部分,在ActionScript也不例外,我們一起來看一下ActionScript所包含的函數(shù)。一般函數(shù)Boolean:轉(zhuǎn)換及傳回布爾值;escape:轉(zhuǎn)換URL碼符號成十六進制字符并以%區(qū)分顯示;eval:將參數(shù)運算并回傳值為變量;getProperty:取得對象參數(shù);getTimer:取得影片開始播放的時間(以毫秒為單位);getVersion:取得系統(tǒng)FLASH播放器的版本號;int:將參數(shù)轉(zhuǎn)化為整型;isFinite:取得數(shù)值參數(shù)的判斷值(如參數(shù)為正則返回真,為負數(shù)或者無限數(shù)值則返回假);isNaN:若參數(shù)為數(shù)值則返回真值,并指定參數(shù)錯誤;.maxscroll:返回文本框最大的高度;newline:換行符;Number:將參數(shù)轉(zhuǎn)換成數(shù)值型;parseFloat轉(zhuǎn)換浮點數(shù)字符串;parseInt將二進制或其他進制轉(zhuǎn)換成十進制;random:產(chǎn)生隨機數(shù);scroll:控制文本框第一行文字與文字文件內(nèi)容位置;String:將參數(shù)轉(zhuǎn)換成字符型;targetPath:返回指定影片的字符型路徑;unescape將十六進制URL碼用ASCII顯示;updateAfterEvent:在鼠標或鍵盤動作后更新狀態(tài)字符串函數(shù)chr:將ASCII轉(zhuǎn)換為符號;length:返回字符串長度;ord:將字符轉(zhuǎn)換成ASCII;substring(字符串,其實字符位置,長度)截取字符串。mbchr、mblength、mbord、mbsubstring的用途和上面列出的函數(shù)類似,只不過是用于多字節(jié)中。在上面函數(shù)的介紹中,并沒有列出函數(shù)的參數(shù),在實際的使用中ActionScript會自動提示你輸入?yún)?shù)。需要注意的是在下面的字符串函數(shù)中以mb為開頭的幾個函數(shù)都是對多字節(jié)字符操作的(像中文),而不帶mb開頭的是對單字節(jié)字符操作的。random函數(shù)取得的隨機數(shù)是在0和參數(shù)x之間的數(shù)值。getProperty函數(shù)是個十分重要的函數(shù),一般都和setProperty配合使用,它的參數(shù)我們在屬性篇還要專門介紹。四、屬性篇ActionScript中的屬性是指影片或者組件的特征或者性質(zhì),用setProperty(設(shè)置對象屬性)和getProperty(取得對象屬性)能很容易的控制組件或者影片的屬性。我們先來看一下ActionScript中對象所具有的屬性:_alpha:對象的透明度_droptarget:返回對象停止拖拽時的位置2023-10-2322:32回復114.104.34.*6樓_currentframe:取得對象所在影格的位置_framesloaded:以加載影片的幀數(shù)_height:對象的高度_highquality:影片品質(zhì)為高品質(zhì)_name:對象的名稱_quality:影片的品質(zhì),可設(shè)置為高、低、中、最佳_rotation:對象旋轉(zhuǎn)的角度_soundbuftime:將聲音預先讀入緩沖的時間(默認為5s)_target:對象所在影片中的路徑_totalframes:影片總計的影格數(shù)_url:取得影片存放的位置_visible:對象是否可見_width:對象的寬度_x:對象所在場景的橫坐標_y:對象所在場景的縱坐標_xmouse:鼠標所在的橫坐標_ymouse:鼠標所在的縱坐標_xscale:對象橫軸的縮放率_yscale:對象縱軸的縮放率上面所列出的就是ActionScript中對象所具有的屬性,下面給大家舉個簡單的例子讓大家熟悉一下屬性的用法。我們在一個新的場景中放置一個按鈕和一個影片,我們想在單擊按鈕時將影片的透明度降低。首先把影片組件的名稱設(shè)置為test(在instance選項卡中)在按鈕組件上點右鍵選擇動作,在動作編輯器中輸入以下代碼:on(release){setProperty(“test”,_alpha,getProperty(“test”,_alpha)-4);}然后運行,看見效果了嗎,是不是很不錯呢?在上面的程序中先是用getProperty函數(shù)取得test的alpha值,然后把alpha加4再用setProperty動作把這個值賦給test。五、對象篇在ActionScript中的對象不同于我們在面向?qū)ο缶幊讨械膶ο?,在ActionScript中把時間、顏色、鼠標、按鍵甚至XML等等都作為對象處理。在ActionScript中的對象包括時間、顏色、鼠標、按鍵、排列、邏輯、數(shù)學、影片、選擇、聲音、字符、XML、XML連接。限于篇幅,在這里不能全部向大家介紹(因為那些實在是太多了),只能粗略地講一下,希望能起到拋磚引玉的作用。時間:取得和設(shè)置系統(tǒng)時間、日期顏色:設(shè)置顏色及顏色轉(zhuǎn)換鼠標:設(shè)置鼠標隱藏和顯示鍵盤:取得鍵盤按鍵數(shù)組:關(guān)于數(shù)組操作的方法邏輯:創(chuàng)建邏輯對象及轉(zhuǎn)換邏輯對象數(shù)學:ActionScript所提供的大量的數(shù)學函數(shù)及常數(shù)影片:對影片的控制及其設(shè)置選擇:對焦點和索引的控制聲音:對聲音的控制字符:對字符串操作的函數(shù)XML:用XML的方法操作文件XML連接:使用XML連接到服務器對XML的支持是FLASH5很大的賣點,正是隨著Microsoft的.NET戰(zhàn)略的拋出,XML成為了業(yè)界討論的熱點。你使用FLASH5可以很方便的與服務器傳送數(shù)據(jù),做出自己的大型的購物表單、查詢系統(tǒng)等等程序。當然XML不屬于本文討論之列,大家如果對這些感興趣請查閱有關(guān)資料。六、實例篇上面洋洋灑灑寫了這么多,不知道大家是不是對ActionScript有了一個初步的印象。下面我和大家一起來分析幾個實例,相信大家很快就會明白上面所講的東西了。1.鼠標拖拽這個源代碼是FLASH5自帶的你可以在Help→Sample→eggplant中打開它。這是一個典型的鼠標拖拽的例子,運行后出現(xiàn)一只茄子和一些的身體器官,你可以自由的把那些器官拖到茄子身上做成茄子先生或者茄子小姐。做出的效果十分有趣,代碼也十分簡單,在里面只用到了三個語句。讓我們來看看制作過程。1.新建影片→設(shè)置好背景顏色→將需要的圖片(茄子和那些器官)導入到影片中。2023-10-2322:32回復114.104.34.*7樓2.把那些圖片分別轉(zhuǎn)成按鈕組件,將組件命名為b_a、b_b、b_c...,然后再新建另外的幾個和b_1相對應的影片組件m_a、m_b、m_c并且分別把相應的按鈕組件拖到影片的組件中。3.在影片組件m_a中的按鈕組件b_a上點右鍵選Actions,加入下面代碼:on(press){//當鼠標按下時startDrag(“/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論