已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
0.緒論對Flash游戲制作者來說,這是一個非常好的時期。到目前為止,還沒有一款軟件比這更好的來設(shè)計中小型游戲了。Flash CS3 Professional對我們來說,是快速的,強大的和容易掌握的。其中最關(guān)鍵的就是,F(xiàn)lash最新發(fā)布的版本有著強大的ActionScript 3.0編程語言。ActionScript1.0和2.0讓Flash制作者感到太傷心了,在程序的調(diào)試過程中,經(jīng)常會出現(xiàn)一些Bugs,導(dǎo)致不能快速的制作出自己的作品。相對而言,ActionScript 3.0編程語言會讓你感到非同尋常。在使用中,你會發(fā)現(xiàn)它能夠快速地,非常容易的制作出自己想象中的作品。最后,就讓這本書帶你走進Flash游戲的世界中吧,希望通過本書的學(xué)習(xí),它可以帶給你更多的快樂。0.1Flash游戲的發(fā)展1995年10月,對我這個游戲設(shè)計師來說,是非常激動的。因為Macromedia剛剛發(fā)布了Shockwave播放器,這樣就可以把自己制作出來的作品發(fā)布到網(wǎng)絡(luò)上了。從最初的Shockwave播放器發(fā)布之后,還有兩次比較激動人心的就是,Shockwave 3D和ActionScript3.0的發(fā)布。雖然Flash游戲環(huán)繞在我們周圍,但如果和Shockwave游戲比起來,它就比較遜色了,因為Shockwave軟件在3D方面是非??焖俸蛷姶蟮摹2还茉鯓?,我們現(xiàn)在有了ActionScript3.0,F(xiàn)lash就會變得和Shockwave一樣強大。例如,F(xiàn)lash 9播放器已經(jīng)占有了全球80的桌面電腦。截至到現(xiàn)在,幾乎全部安裝Flash 8播放器的用戶已經(jīng)將該軟件更新到了Flash 9的版本,這對我們Flash游戲制作者來說,無非有莫大的幫助。Flash 9播放器還可以應(yīng)用于Linux系統(tǒng),網(wǎng)絡(luò)電視窗口,游戲控制臺等多方面軟件,現(xiàn)在,我們擁有了Flash 9player和ActionScript 3.0以后,就可以輕便地來做這些事情了。你可以開發(fā)雙方獨立的或者基于網(wǎng)絡(luò)版本的Flash游戲,當(dāng)然,還還可以利用第三方的軟件來擴展你的Flash功能,以便編譯出更強壯的代碼??傊?,對制作中小型的游戲來說,ActionScript 3.0的功能是非常強大和實用的。0.2本書為誰而寫本書適用于使用Flash制作游戲的任何人,讀者可以根據(jù)自身情況選擇不同的方式來用好此書:對Flash繪圖和編程都沒有學(xué)過的新手來說,最好先學(xué)習(xí)一些基本的編程語法再看。當(dāng)然,如果你對Flash有濃厚的興趣,也可以直接用此書來學(xué)習(xí)ActionScript 3.0;如果你以前使用的是ActionScript 1.0或者2.0,你也可以用此書快速的學(xué)會ActionScript 3.0。不過,你應(yīng)該盡可能的把以前ActionScript版本的編程方式忘掉。確切地來說,ActionScript 3.0與前期的1.0和2.0的版本已經(jīng)有很大不同。我自己認為它是一門全新的語言。對于有些動畫和編程基礎(chǔ)的人來說,如果想進一步學(xué)習(xí)游戲編程,本書是再適合不過了;如果你沒有學(xué)過編程,但喜歡繪圖,插圖,或者動畫。你可以用本書的例子作為素材。也就是說,你可以把本書中源文件拿出來用到你自己制作的游戲中去;同樣的,如果你是優(yōu)秀的ActionScript 3.0程序師,本書也可以作為給你提供的一個代碼庫,你可以把它運用到自己設(shè)計的游戲中去。0.3 使用本書需要具備的知識 除了正確地使用軟件之外,對大多數(shù)讀者來說,如果想從本書中獲取更多的知識,還需要對Flash編程基本知識做些準(zhǔn)備。 必備知識 對大多數(shù)讀者來說,您應(yīng)該對Flash CS3的運行環(huán)境很熟悉了。如果你是一位新的Flash用戶,可以在Flash CS3的軟件中打開用戶指導(dǎo)說明,或者選擇Flash幫助或按F1鍵查看幫助。另外,你也可以買本初級者的書翻閱或者在網(wǎng)上直接觀看在線教程。本書是分章節(jié)講授的,各章節(jié)間沒有太大的連貫性。如果你想應(yīng)用本書范例中代碼的話。你只要有些編程基礎(chǔ)就可以了,比如ActionScript1.0或者2.0,JavaScript,Java,Lingo,Perl,PHP,C等等任何結(jié)構(gòu)化設(shè)計語言中的一樣就可以。只要你稍微對循環(huán),條件語句和函數(shù)等知識有些了解,也就很容易理解ActionScript 3.0語言了。在第一章中“Flash和ActionScript 3.0的應(yīng)用”就概括了這些基本的語法。如果你是一位程序員,以前沒有使用過Flash軟件的話,首先應(yīng)該閱讀一下Flash用戶指南中關(guān)于繪圖和編程的基礎(chǔ)部分。軟件應(yīng)用當(dāng)然,學(xué)習(xí)本書需要用到Flash CS3 Professional或者更新的Flash 8 Studio,本書不適用于之前Flash版本的用戶。Flash CS3在Windows和Mac系統(tǒng)上使用效果是一樣的,本書中的屏幕截圖取自Mac系統(tǒng)中的Flash程序,與Windows系統(tǒng)中Flash的截圖應(yīng)該是一致的。Flash將來的版本很有可能是ActionScript 3.0編程語言的延續(xù),或許一些菜單選項和快捷鍵要發(fā)生變化,但你仍然能夠使用本書。這時,你要考慮在發(fā)布文檔時設(shè)置成Flash 9播放器和ActionScript3.0,以確保更大的兼容性。源文件如果你需要本書的源文件,請看下面的怎樣獲取源文件的說明。0.4 在你的游戲中如何使用示例本書包含16個完整的游戲,其中也包括一些經(jīng)典的游戲,例如:match three,asildescrolling platform游戲和word search。經(jīng)常有人這樣問我:“能夠把這些游戲運用到自己的作品中呢?”答案就是,當(dāng)然了,你可以把這些游戲都修改成自己的,例如,你可以改變里面的圖形、游戲的開始或其他內(nèi)容等部分都可以。但是本書不提倡把這些游戲或者源代碼清單原封不動的發(fā)布或者復(fù)制。當(dāng)你在你的方案中用這些游戲作品時,不要直接復(fù)制過去,這樣是不專業(yè)的,在下面的網(wǎng)站中可以找到答案如果你僅使用其中的一部分代碼,或者一個小游戲作為某個方案的框架,這無不可??傊?,要正確的了解這些常識和慣例,謝謝。0.5 你在這本書中可以學(xué)到什么第一章,“Flash和ActionScript 3.0的應(yīng)用”,主要介紹了ActionScript 3.0和一些基本的概念,如游戲編程策略,游戲清單等,這些可以幫助你在Flash CS3中更好地制作游戲。第二章,“ActionScript游戲元素”,呈獻給大家一些函數(shù)的代碼片段,例如創(chuàng)建文本域,繪制圖形,播放聲音等。這些在代碼庫中都是非常有用的,也始終貫穿于本書當(dāng)中。第三章至第十二章,每一章都包括一個或多個完整的游戲,書中正文的每一章都有游戲代碼供你使用,或者你也可以用本書提供的源文件和代碼。第三章,“基本游戲結(jié)構(gòu):A Matching Game”,這個與本書其他的游戲有些不同。它包括完成游戲前怎樣檢查代碼,設(shè)計一個完整的游戲需要哪些步驟等說明。其余章節(jié)大部分在開始制作游戲之前都包含一個特定的主題,例如:在第四章中就以“數(shù)組和數(shù)據(jù)對象”開始講解的。但是,本書所介紹的內(nèi)容遠遠不止書本上這些,在線還可以獲取更多的知識。0.6 關(guān)于FlashGameU.com網(wǎng)站 這個FlashGameU.com網(wǎng)站可以說是這本書的伙伴,在這個網(wǎng)站上可以找到這個源文件,補充資料以及新的內(nèi)容,并設(shè)有Flash發(fā)展論壇和作者的Blog等。本書的源文件是按章節(jié)劃分的,在包內(nèi)部還更進一步的對每個小游戲打包,在網(wǎng)站主頁上有鏈接可以直接下載。在網(wǎng)站上,你能夠看到作者的Blog,如果你對本書有什么建議或者意見,或者有關(guān)于Flash游戲發(fā)展存在的問題,可以直接在論壇上留言或者通過作者的Blog聯(lián)系。1.1 ActionScript 3.0是什么ActionScript3.0是在2006年發(fā)布Flex 2時提出來的,F(xiàn)lex允許開發(fā)者創(chuàng)建的Flash Player程序和Flash一樣。但是,F(xiàn)lash卻給我們提供了更加直觀的界面,因此它就更適合用作游戲開發(fā)。ActionScript是在Flash4發(fā)布的時候提出來的,當(dāng)時的名稱就叫做ActionScript,他的主要能是用來控制幀的跳轉(zhuǎn)和鼠標(biāo),鍵盤的交互。直到發(fā)布Flash5之后,ActionScript才正式地作為ActionScript1.0使用,但是它的發(fā)展速度相當(dāng)快,到了Flash MX2004(Flash 7),就引進了ActionScript2.0,它遵循ECMA標(biāo)準(zhǔn),在面向?qū)ο缶幊谭矫?,它開始變得逐步強大。像應(yīng)用于瀏覽器的JavaScript,也是基于ECMA標(biāo)準(zhǔn)的。 注:Flash 9 播放器內(nèi)部建有2套虛擬機,AVM1用來執(zhí)行ActionScript1.0和2.0代碼,AVM2用來執(zhí)行ActionScript3.0代碼,但是AVM2的速度要比AVM1快得多。可以說ActionScript3.0最近幾年已經(jīng)發(fā)展到頂點了。Flash每個版本的發(fā)布,大家都會把它推到極限?,F(xiàn)在,我們已經(jīng)有了一個優(yōu)秀的開發(fā)環(huán)境來制作我們的2D游戲了,你將會體會到用一小段代碼就可以讓游戲運行起來的奧妙。1.2創(chuàng)建一個簡單的腳本程序首先,打開Flash應(yīng)用程序,選擇“文件”“新建”,會出現(xiàn)一個文檔窗口,然后,選擇第一項“Flash文件(ActionScript3.0)”,點擊“確定”,軟件會自動生成一個“未命名1”的空白文檔??梢钥吹?,在該文檔頂部有一個時間軸,還有幀數(shù),你看到幀數(shù)量的多少取決于Flash軟件顯示窗口的大小。在Flash繪圖時需要用到很多幀,但對于我們游戲制作者來說,用少數(shù)的幾幀就能實現(xiàn)效果了。時間軸可以有一層或者多層,在新建文檔的窗口中默認自動打開一層,名稱為“圖層一”,在第一幀你可以看到,有個空心小圓圈的標(biāo)志,它就表示該幀為空白關(guān)鍵幀。注:關(guān)鍵幀是一個動畫術(shù)語,在Flash動畫制作中會經(jīng)常用到,它的作用就是定義在某一個時間點上元素的狀態(tài)和參數(shù)的變化。例如,選中時間軸的第1幀,在舞臺的左端放置一個影片剪輯,然后在第9幀插入一個關(guān)鍵幀,并把該影片剪輯移動到舞臺的右端,然后在第1幀至第9幀的任一幀點擊鼠標(biāo)右鍵創(chuàng)建補間動畫,然后選擇菜單“控制”“測試影片”,發(fā)現(xiàn)該影片剪輯已經(jīng)能夠在舞臺上運動了。對我們游戲編程者來說,我們不會用關(guān)鍵幀來做動畫,需要的只是在關(guān)鍵幀時間點上放置游戲中需要的“說明”,“播放”,“游戲結(jié)束”等物件而已。你還可以在任何一層的任意關(guān)鍵幀輸入自己的腳本代碼,具體操作是選中這個關(guān)鍵幀,點擊Flash菜單“窗口”“動作”或者按【F9】鍵即可打開腳本編輯區(qū)輸入自己的代碼。在腳本編輯區(qū)的上部,有可以實現(xiàn)很多功能的控制選項,例如可以對代碼進行格式套用等。但是,我們不準(zhǔn)備詳細介紹這些控制選項,因為后面寫出的代碼大部分都在外部類中。下面,就讓我們來創(chuàng)建一個簡單的Hello World程序吧,在腳本編輯區(qū)輸入以下代碼:trace(“Hello World”);好了,就是這么簡單,現(xiàn)在你已經(jīng)創(chuàng)建了第一個AS3.0的程序。來測試一下吧,選擇“控制”“測試影片”或者按【Ctrl】回車鍵。如果你沒有創(chuàng)建自己的Flash影片,可以直接打開HelloWorld1.fla文件進行測試?,F(xiàn)在,來看一下輸出面板,在窗口的左上角你會看到一行輸出了“Hello World”,但是它只用于在Flash 9中測試影片,它不會顯示在舞臺上,如果想顯示在舞臺上的話,我們還需要進一步做更多些的工作。創(chuàng)建可視對象如果想讓“Hello World”在影片中能夠看到的話,我們用3行代碼就能夠?qū)崿F(xiàn)了。第一行需要創(chuàng)建一個文本域顯示在屏幕上,她的作用是用來存放文本的容器;第二行把該段文本存放在文本域內(nèi)就可以了;第三行是把這個文本域添加到舞臺上,舞臺上影片的顯示區(qū)域,你可以在舞臺上布置自己的元件,在測試影片時就能夠看到了。顯示對象,在AS3.0中實際上就是一個能夠看得見的元素,他可以是文本區(qū)域,圖形,按鈕,或者像彈出菜單式的界面。顯示對象里面還可以包含其他的顯示對象,例如,在國際象棋游戲中,一個顯示對象會包含所有的部分,棋盤是底部的一個顯示對象,舞臺也是一個顯示對象。下面給出這三行代碼,可以把它粘帖到第1幀中代替以前的那一行代碼:var myText:TextField=new TextField();myText.text=Hello World;addChild(myText);首先,先創(chuàng)建了一個TextField類型的變量,然后把“Hello World”賦值給這個變量,最后在把它添加到舞臺上就完成任務(wù)了。注:var是一個關(guān)鍵字,用來聲明變量,變量的數(shù)據(jù)類型寫在冒號的后面,如果要賦值的話,值得數(shù)據(jù)類型必須要和數(shù)據(jù)類型一致。然后,選擇控制,測試影片,你就能夠在影片的左上部發(fā)現(xiàn)trace()出來的結(jié)果。因為我們沒有設(shè)置文本的任何格式,所以才會在影片的左上部出現(xiàn)軟件默認的設(shè)置值。隨著我們學(xué)習(xí)的深入,我們還可以設(shè)置文本的位置,大小,字體等格式。創(chuàng)建一個AS3.0類文件如果我們沒有特別需求的話,不會在時間軸上寫代碼,而是在大多數(shù)時候,把代碼都寫到類文件中。下面,就讓我們用外部類建立一個Hello World程序吧_首先,選擇“文件”“新建”-“ActionScript 文件”,點擊確定后創(chuàng)建一個腳本文件。我們可以看到,該文件與fla文件有很大不同,他沒有時間軸和舞臺工作區(qū)了,整個界面都是腳本編輯區(qū)域。下面,我們嘗試著用類文件寫這個程序,你也可以先打開源文件看一下這個格式:代碼如下:package import flash.display.MovieClip; import flash.text.TextField /* * . * author 璀璨星晨 */ public class DebugExample extends MovieClip public function DebugExample() for (var i:int = 0; i “屬性”,在文檔類后面的區(qū)域輸入剛才的類名HelloWorld3,好了,現(xiàn)在可以打開控制測試影片了。在這里,系統(tǒng)就會自動編譯這個類文件,對文檔類進行初始化,執(zhí)行構(gòu)造函數(shù)里面的語句,并將“”Hello World的文本顯示到舞臺上。1.3Flash CS3的使用 本節(jié)主要介紹了顯示對象,顯示列表,舞臺,庫和時間軸等。顯示對象和顯示列表顯示對象就是可以在舞臺上顯示的對象,包含可以直接看到的文本,圖形,視頻和圖片等內(nèi)容。所有顯示對象類都是DisplayObject類的子類。另外,顯示對象容器也可以作為一種特殊類型的看不到的顯示對象,在它的內(nèi)部還可以包含子顯示對象。顯示列表:由Flash Player呈現(xiàn)給屏幕內(nèi)容的顯示對象的層次結(jié)構(gòu),舞臺是顯示列表的根,附加到舞臺或其子級上的所有顯示對象構(gòu)成了顯示列表。當(dāng)然,在列表中,也包括位于舞臺邊界以外的對象。在這里,作者主要介紹了MovieClip和Sprite。其中MovieClip通常是由Flash繪制工具創(chuàng)建出來的,因為繪制工具創(chuàng)建出來的是含有時間軸的影片,而只有MovieClip才擁有和時間軸相關(guān)的屬性和操作。但是,在AS3.0中,MovieClip的重要性已經(jīng)不如以前了。在以后編寫程序的過程中,我們使用最多的就是sprite類,可以把它看成去掉時間軸的MovieClip,它含有g(shù)raphic方法,可以直接在自身繪圖,還可以包含子顯示對象。舞臺舞臺是Flash中的主繪圖區(qū),它就是在游戲播放時我們看到的部分。我們在制作游戲時,可以在舞臺上繪制元件,還可以把庫中的元件拖放到舞臺上。庫庫是存儲和組織在 Flash 中創(chuàng)建的各種元件的地方,它還用于存儲和組織導(dǎo)入的文件,包括位圖圖形、聲音文件和視頻剪輯。 在庫中可以組織文件夾中的庫項目,查看項目在文檔中使用的頻率,并按類型對項目排序。時間軸時間軸用于組織和控制一定時間內(nèi)的圖層和幀中的文檔內(nèi)容。 與膠片一樣,F(xiàn)lash 文檔也將時長分為幀。 圖層就像堆疊在一起的多張幻燈膠片一樣,每個圖層都包含一個顯示在舞臺中的不同圖像。 時間軸的主要組件是圖層、幀和播放頭。文檔中的圖層列在時間軸左側(cè)的列中。 每個圖層中包含的幀顯示在該圖層名右側(cè)的一行中。 時間軸頂部的時間軸標(biāo)題指示幀編號。 播放頭指示當(dāng)前在舞臺中顯示的幀。 播放文檔時,播放頭從左向右通過時間軸。時間軸狀態(tài)顯示在時間軸的底部,它指示所選的幀編號、當(dāng)前幀頻以及到當(dāng)前幀為止的運行時間。1.4腳本編輯區(qū)在創(chuàng)建游戲時,雖然Flash文檔窗口對我們來說是很重要的,但是讓我們花費大量時間的地方還是在動作面板中腳本編輯區(qū)。我們在前面章節(jié)中已經(jīng)看到過這個編輯區(qū),但是下面的這個卻有些不同,因為在左邊有一個AS3.0的分層菜單(也就是工具箱)。我們可以通過鍵盤上的【F9】鍵或者選擇窗口動作面板菜單命令,打開上面的腳本編輯區(qū),在該區(qū)的上部,軟件為我們提供了很多在代碼編寫過程中需要用到的輔助功能:將新項目添加到腳本中:顯示AS工具箱中具有的所有語言元素,從語言元素的分類列表中選擇一項添加到腳本中。查找:在AS編輯區(qū)中查找和替換文本;語法檢查:檢查當(dāng)前AS編輯器中的代碼是否存在語法錯誤,如果有語法錯誤將在輸出面板準(zhǔn)中顯示出來。自動套用格式:設(shè)置AS的格式以實現(xiàn)正確的編碼語法和更好的可讀性,可以在首選參數(shù)對話框中設(shè)置自動套用格式的首選參數(shù),從編輯菜單或通過動作面板彈出的菜單可以訪問此對話框。顯示代碼提示:顯示正在編寫的代碼行的代碼提示,這個功能在所有的按鈕中是最有用的。例如當(dāng)你在編寫程序時,當(dāng)你輸入到gotoAndStop(,你立即就會看到這個方法接受什么參數(shù)以及參數(shù)類型,這是不是很方便?。縚調(diào)試選項:調(diào)試代碼時用來添加或移除斷點。折疊成大括號:折疊括號中的代碼。折疊選項:當(dāng)你選中多行代碼時,點擊該按鈕,你就會發(fā)現(xiàn)這些代碼自動折疊成一行了,如果想恢復(fù)的化,可以雙擊該行的。按住Alt鍵,可以折疊未選中的代碼。展開全部:展開以上方式折疊的全部代碼應(yīng)用塊注釋:把所選的代碼轉(zhuǎn)化為塊狀注釋應(yīng)用行注釋:把所選的代碼轉(zhuǎn)化為行注釋取消注釋:取消所選代碼的注釋標(biāo)記顯示/隱藏工具箱:顯示/隱藏動作面板左側(cè)的工具箱另外,在腳本編輯區(qū)的左邊有一列數(shù)字,它是用來標(biāo)識縮寫代碼的行數(shù)。當(dāng)我們在測試影片出現(xiàn)錯誤時,將會在編譯器錯誤報告中顯示出錯誤代碼的行數(shù),描述等,這樣可以保證我們能夠很快的找到錯誤代碼。1.5 ActionScript游戲編程策略在游戲編程中要注意一下幾點:逐步逼近原則無論是初學(xué)者還是有一定經(jīng)驗的編程人員,在寫代碼時都會碰到這樣的問題,我不清楚這個工程的代碼是怎樣編寫出來的。例如,一個程序員想制作一艘太空飛船,要求就是當(dāng)按住方向鍵時,出現(xiàn)旋轉(zhuǎn)效果。對于這個任務(wù),其關(guān)鍵點就是:當(dāng)按住左方向鍵時,在飛船的rotation屬性減去某一角度;相反,當(dāng)你按住了右方向鍵是,則要在飛船的rotation屬性中加上某一角度即可。把它分開來思考就是這么簡單很多初學(xué)者在開始會覺得比較困難,他們總認為自己不能夠制作一個完整的游戲,因為它看起來是非常的復(fù)雜。但是,如果你把它分成小塊的話,一次就設(shè)計一小塊,最后,你就可以完整地創(chuàng)建出任何游戲。用好注釋:當(dāng)你書寫代碼的時候,在適當(dāng)?shù)匚恢眉由献⑨屖欠浅S斜匾?,現(xiàn)在看起來好像是額外工作。但是,你過幾個月后再返回來看這些代碼時,就會發(fā)現(xiàn)加上的這些注釋都非常有用。一般來說,注釋分為行注釋和塊注釋,行注釋的內(nèi)容比較少,一般放在行代碼的前面或后面;而塊注釋的內(nèi)容就比較多了,一般用一個或者幾個句子來說明,它放在一個函數(shù)或者一個代碼塊的前面。例如:someActionScriptCode();/這是一個行注釋/這是一個行注釋someActionScriptCode();/*這是一個塊注釋塊注釋比較長并且還包含下面代碼的一段描述*/另外,需要注意的就是,注釋一定要簡潔明了,也不要簡單的重述代碼中體現(xiàn)出來的內(nèi)容。例如,下面這行注釋就沒有多大意義了:/循環(huán)10次for(var i:int=0;i10;i+)變量和函數(shù)名稱的使用不要擔(dān)心函數(shù)名或者變量名過長不好理解,恰恰相反,使用描述性的變量名和函數(shù)名,還能夠起到事半功倍的效果,因為它自身就可以作為描述性的說明,比如: public function putStuff() for(var i:int=0;i1;i+) var a:Ting=new Ting(); a.x=i*10 a.y=300 addChild(a)這段代碼是干什么的?它看起來好像是復(fù)制了10個影片剪輯并添加到舞臺上了,但是這個影片剪輯具體是什么東西,它有什么用途?我們并不知道。下面,我們再看一下這段代碼的另一種方式: public function placeEnemyCharacters() for(var enemyNum:int=0;enemyNum9) removeEventListener(Event.ENTER_FRAME,creatCircle)1.6腳本基本概念本節(jié)主要講述了變量的聲明和使用,條件語句,循環(huán)和函數(shù)等基本概念。變量的聲明和使用在ActonScript3.0中,如果你初次使用變量,那么要用var關(guān)鍵字來聲明一個變量,變量后面如果不加數(shù)據(jù)類型的話,就被歸為未聲明類型;一般建議變量后面跟上數(shù)據(jù)類型,以便在賦值的過程中保證值的數(shù)據(jù)類型和變量的數(shù)據(jù)類型一致。var myValue:int=7var myValue:Number=7.8int為有符號的整型數(shù),有正負之分;uint是一大于0的正整數(shù);如果你想聲明帶小數(shù)點的值,可以選擇Number類型。另外,還有String和Boolean數(shù)據(jù)類型,String類型來保存文本,Boolean類型的值為true或false。上面這些是基元數(shù)據(jù)類型,可是,還包括數(shù)組等。另操作運算符的使用在處理數(shù)據(jù)運算是也有至關(guān)重要的作用。下面是加減乘除的一些示例:var myNumber:Number=7.8+2var myOtherNumber:int=5-6var myAnotherNumber:Number=myNumber*3var myNextNumber:Number=myNumber/myOtherNumber 補充:可以在上面代碼的下面加上trace()函數(shù),以便觀察計算結(jié)果trace(myNumber)trace(myOtherNumber)trace(myAnotherNumber)trace(myNextNumber)/*輸出9.8-129.400000000000002-9.8*/ 另外,你還可以用,運算符來簡化一些運算,為遞增,為遞減myNumber+你還可以用+=,-=,*=和/=算術(shù)賦值運算符來處理數(shù)據(jù),例如,下面的運算會使變量加上7myNumber+=7你還可以用()來設(shè)置這個運算符優(yōu)先級順序var myNumber:Number=(3+7)*2 trace(myNumber)/*輸出:20*/ 另外,String類型的值也可以應(yīng)用,運算符,例如var myString:String=Hellovar myOtherString:String=myString+WorldmyAnotherString+=World trace(myString);/該行放在第一行代碼的下面/此兩行放在上面代碼的最后即可trace(myOtherString);trace(myString);/*輸出:HelloHelloWorldHelloWorld*/ 當(dāng)我們在類中聲明變量后,這個變量就成為這個類的屬性了,我們還可以在聲明變量的關(guān)鍵字前面加上public或private等訪問控制符,其區(qū)別就是private不能夠被該類以外的代碼訪問。條件語句在ActionScript語言中,if語句的功能和在其他編程語言中的作用是一樣的if(myValue=1)doSomeThing()()內(nèi)的語句為條件表達式,如果它的值為真,執(zhí)行內(nèi)的流程語句;如果條件不成立,則為假,不執(zhí)行流程語句。上面的條件是用=來檢驗左右兩邊的值或表達式是否相等的,另外還可以用,=,=來判定。在if結(jié)構(gòu)中,你還可以添加else和else if來擴展功能if(myValue=1)doSomethig()else if(myValue=2)doSomethingElse()elsedoNothing()在上面的條件表達式中,還可以用邏輯運算符&和|等來綜合運算。if(myValue=1)&(myString=This)doSomething()循環(huán)循環(huán)一般在for語句或者while語句中執(zhí)行for語句的循環(huán)條件有三個要素,分別是循環(huán)變量設(shè)置初始值,循環(huán)條件表達式,改變循環(huán)變量值的語句。例如,下面的代碼聲明變量i并賦值為0,條件是小于10,并且每一次遞增一來改變。for(var i:int=0;i10;i+)doSomething()你還可以在循環(huán)體內(nèi)用break和continue來控制循環(huán)流程。break用來直接跳出循環(huán),不再執(zhí)行循環(huán)體內(nèi)后面的語句;continue只是終止當(dāng)前這一輪的循環(huán),直接跳到下一輪循環(huán),在這一輪循環(huán)中,循環(huán)體內(nèi)continue后面的語句也不會被執(zhí)行。 補充:可以用以下代碼測試break和continue控制循環(huán)流程的作用/使用break退出循環(huán)for (var i:int=0; i10; i+) if (i=3) break; trace(當(dāng)前數(shù)字:t+i);/*輸出當(dāng)前數(shù)字: 0當(dāng)前數(shù)字: 1當(dāng)前數(shù)字: 2/由以上輸出可以看出,當(dāng)i3時,break跳出循環(huán)體,并且終止了循環(huán)。*/continue跳出當(dāng)前的循環(huán)把上面代碼塊中的break改為continue后,測試結(jié)果如下:/*輸出當(dāng)前數(shù)字:0當(dāng)前數(shù)字:1當(dāng)前數(shù)字:2當(dāng)前數(shù)字:4當(dāng)前數(shù)字:5當(dāng)前數(shù)字:6當(dāng)前數(shù)字:7當(dāng)前數(shù)字:8當(dāng)前數(shù)字:9*/由上面的輸出可以看出,當(dāng)i3時,continue后面的語句沒有執(zhí)行,而是直接跳轉(zhuǎn)到下一輪循環(huán),直到循環(huán)條件結(jié)束。 while循環(huán)表示:當(dāng)滿足條件表達式的時候再執(zhí)行循環(huán)體var i:int=0while(i10)i+do.while循環(huán),先判斷是否符合循環(huán)條件,然后在執(zhí)行循環(huán)體,與while唯一不同的就是dowhile循環(huán)體至少要執(zhí)行一次var i:int=0doi+while(i10)函數(shù)在AS3.0中,在創(chuàng)建函數(shù)之前,你必須要先聲明這個函數(shù),包括他里面包含的參數(shù),返回值等,然后才能夠調(diào)用。如果在類中的話,你也要用到public或者private等訪問控制說明符。private函數(shù)不能夠被外部類訪問,我們在本書講解單類游戲的方法中,大部分用到的都是private類??聪旅孢@個示例,如果你把這個函數(shù)寫在主時間軸時,我們就要去掉private關(guān)鍵字了。private function myFunction(myNumber:Number,myString:String):Booleanif(myNumber=7)return trueif(myString.length3) return truereturn false如果函數(shù)里面的參數(shù)是7或者字符串的位數(shù)小于三位,該函數(shù)值就返回true。1.7測試和調(diào)試代碼本節(jié)主要講述了在什么時候需要用到調(diào)試程序來調(diào)試代碼,并對調(diào)試控制面板的功能進行了一一介紹。 在下面三種情況下需要調(diào)試代碼:第一,flash在編譯或運行代碼時,出現(xiàn)了錯誤信息。例如變量拼寫錯誤等,這時你就需要用到調(diào)試功能調(diào)試;第二,程序沒有按照預(yù)想的運行。例如,應(yīng)該運動的對象沒有運動,用戶不能在文本中輸入內(nèi)容或者在游戲中,英雄的子彈命中敵人后不能被打死。像這類錯誤也需要用到調(diào)試功能。第三,通過調(diào)試來改進你的代碼。你可以通過調(diào)試來找到這個低效率的代碼。調(diào)試代碼的幾種方法你可以通過幾種不同的方法來調(diào)試你的代碼,最簡單的就是通過你的大腦計算出來,例如下面這幾行代碼:var myNumber:int=7myNumber+=3myNumber*=2myNumber+上面,你不用運行代碼就知道該變量結(jié)果是21如果代碼比較長,計算比較復(fù)雜的話,用trace()方法。可以在下面加入一行:trace(myNumber)用調(diào)試器來調(diào)試代碼例如,如果你編寫了一組 if.else if 語句且無法確定在執(zhí)行哪一條語句,那么,你就可以在語句前添加斷點然后再在調(diào)試器中逐句檢查這些語句(跟蹤它們)。設(shè)置斷點 您可以在動作面板、“腳本”窗口或者“調(diào)試器”中設(shè)置斷點。 在“動作”面板中設(shè)置的斷點會保存在 FLA 文件中。 在調(diào)試器和“腳本”窗口中設(shè)置的斷點不會保存在 FLA 文件中,并且只在當(dāng)前的調(diào)試會話中有效。 重要說明: 如果在動作面板或“腳本”窗口中設(shè)置了斷點并單擊“自動套用格式”,請檢查您的斷點。 如果“自動套用格式”命令刪除了空行,則您的 ActionScript 可能已移到另一行。 設(shè)置斷點前最好對您的腳本執(zhí)行自動套用格式操作。另要注意。不要在注釋或空行上設(shè)置斷點,在此處設(shè)置的斷點將被忽略。單步調(diào)試代碼在腳本中設(shè)置斷點后單擊調(diào)試器中的“繼續(xù)”,便可以跟蹤代碼行,即控制調(diào)試器如何在語句和函數(shù)中移動。例如,在下面的 ActionScript 3.0 代碼中,如果將第一個斷點設(shè)置在13行showNumber(i) 代碼上,調(diào)試影片時,flash player會自動運行到showNumber(i)時停止,如果單擊“跳入”,調(diào)試器將進入第 17 行,再次單擊“跳入”將進入第18 行。1.package2.3.import flash.display.MovieClip;4.import flash.text.TextField5./*6.author 璀璨星晨7.*/8.public class DebugExample extends MovieClip9.10.public function DebugExample()11.12.for (var i:int = 0; i 發(fā)布設(shè)置,在發(fā)布設(shè)置有格式,F(xiàn)lash和HTML三個標(biāo)簽。格式選項卡發(fā)布設(shè)置決定發(fā)布flash動畫時使用哪種導(dǎo)出格式。默認情況下flash CS3導(dǎo)出一個swf文件和一個包含swf的HTML文件;GIF,JPEG和PNG為圖片格式;windows放映格式和 Macintosh放映格式為嵌入flash播放器的exe(Windows系統(tǒng))和app(Macintosh系統(tǒng))。Flash選項卡版本:用于指定發(fā)布影片的Flash player的版本加載順序:首幀所有層的下載方式,哪些內(nèi)容將在影片下載時首先出現(xiàn),該選項只影響首幀ActionScript版本:影片所用的ActionScript所用的版本,單擊右側(cè)的設(shè)置按鈕,可以指定本影片所用的類文件包的路徑,以及警告模式與嚴謹模式的設(shè)置。生成大小報告:生成一個報告,按文件列出最終 Flash 內(nèi)容中的數(shù)據(jù)量。忽略 Trace 動作: 使 Flash 忽略當(dāng)前 SWF 文件中的 Trace 動作 (trace)。 如果選擇該選項,“跟蹤動作”的信息不會顯示在“輸出”面板中。防止導(dǎo)入: 防止其他人導(dǎo)入 SWF 文件并將其轉(zhuǎn)換回 FLA 文檔。 可使用密碼來保護 Flash SWF 文件。允許調(diào)試: 激活調(diào)試器并允許遠程調(diào)試 Flash SWF 文件。 可讓您使用密碼來保護 SWF 文件。壓縮影片: (默認)壓縮 SWF 文件以減小文件大小和縮短下載時間。 當(dāng)文件包含大量文本或 ActionScript 時,使用此選項十分有益。 經(jīng)過壓縮的文件只能在Flash Player 6 或更高版本中播放。針對 Flash Player 6 r65 優(yōu)化: 如果在“版本”彈出菜單中選擇了 Flash Player 6,則選擇此選項可以將版本指定為 Flash Player 6。 更新的版本使用ActionScript 注冊分配來提高性能。 用戶必須擁有 Flash Player 6 或更高版本。導(dǎo)出隱藏的圖層: (默認)導(dǎo)出 Flash 文檔中所有隱藏的圖層。 取消選擇“導(dǎo)出隱藏的圖層”將阻止把生成的 SWF 文件中標(biāo)記為隱藏的所有圖層(包括嵌套在影片 剪輯內(nèi)的圖層)導(dǎo)出。 這樣,您就可以通過使圖層不可見來輕松測試不同版本的 Flash 文檔。導(dǎo)出 SWC: 導(dǎo)出 .swc 文件,該文件用于分發(fā)組件。 .swc 文件包含一個編譯剪輯、組件的 ActionScript 類文件,以及描述組件的其它文件。JPEG品質(zhì):flash對文件中的位圖圖像使用JPEG格式進行壓縮,壓縮量越大,文件越小,圖片質(zhì)量越差,如果發(fā)布的影片中不包含位圖圖像,該設(shè)置無效。音頻流和音頻事件:指定播放時的流式聲音和事件聲音的采樣率和壓縮方式。這些設(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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年物聯(lián)網(wǎng)設(shè)備管理系統(tǒng)開發(fā)合同2篇
- 二零二四年墻體廣告租賃合同涵蓋廣告位更新維護責(zé)任3篇
- 2025年房地產(chǎn)項目委托產(chǎn)權(quán)登記及過戶服務(wù)合同3篇
- 二零二五年度衛(wèi)生間清潔保養(yǎng)服務(wù)合同3篇
- 二零二五年房地產(chǎn)物業(yè)管理服務(wù)委托合同模板3篇
- 2025年度生態(tài)環(huán)保型建筑材料采購合同3篇
- 二零二五年服裝店庫存管理師聘用合同樣本3篇
- 2025年度網(wǎng)絡(luò)安全防護技術(shù)解決方案定制合同3篇
- 二零二五年度河堤施工環(huán)境保護與污染防治合同3篇
- 二零二五年度環(huán)保材料買賣合同規(guī)范文本2篇
- 【人教版】九年級化學(xué)上冊期末試卷及答案【【人教版】】
- 四年級數(shù)學(xué)上冊期末試卷及答案【可打印】
- 人教版四年級數(shù)學(xué)下冊課時作業(yè)本(含答案)
- 中小學(xué)人工智能教育方案
- 高三完形填空專項訓(xùn)練單選(部分答案)
- 護理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓(xùn)師的培訓(xùn)》課件
- 建筑企業(yè)新年開工儀式方案
- 營銷組織方案
- 初中英語閱讀理解專項練習(xí)26篇(含答案)
評論
0/150
提交評論