一、素材篇
素材有三種,一種是美術(shù)提供的各種靜態(tài)圖片,對此我們要做的是將這些靜態(tài)圖片用腳本轉(zhuǎn)成swf為我們所用。另一種是在Flash創(chuàng)作工具(IDE)中自己創(chuàng)建,這部分需要用到的主要是FLash CS4的知識,如時(shí)間軸、圖層、遮罩、各種工具、補(bǔ)間、少數(shù)簡單動(dòng)作等等。第三種是通過用AS3的繪圖API或者3D API去繪制資源,通常這種占內(nèi)存最小,并且擴(kuò)展性較強(qiáng),但是難度較高。
獲得以及對素材的加工處理工具有PhotoShop+其腳本、Flash IDE+JSFL腳本、AS3幫助文檔
通過PS的記錄動(dòng)作可以執(zhí)行一些重復(fù)性事情。另外將圖片轉(zhuǎn)化為png-8的,可以減少將近一半以上的資源大小,代價(jià)是圖像邊緣有鋸齒,并且無半透明度。。
二、代碼篇
代碼分兩種,一種是插在時(shí)間軸上,一種是獨(dú)立做成類文檔。前者容易寫,但是擴(kuò)展和管理不好。后者易于管理、擴(kuò)展,邏輯清晰,但是和Flash IDE的交互不夠,通常我們會(huì)通過FB等其他開發(fā)工具來彌補(bǔ)這一點(diǎn)。
編寫代碼的工具有Flash IDE中的Flash 文檔、Flash IDE中的AS 3文檔、Flash Builder 4(以前是叫做FLex Builder 3)、FDT(我用的是Eclipse)。
三、結(jié)構(gòu)篇
盡量用面向設(shè)計(jì)模式的思想去組織你的模塊。另外就是擁有個(gè)人的類庫。(算法類庫、3D類庫、圖形特效類庫、網(wǎng)絡(luò)通信類庫、內(nèi)存管理類庫、文本處理類庫、聲音編碼解碼類庫)。
四、內(nèi)存篇
通常一個(gè)單打格斗游戲,可以做到swf只有3M左右,占內(nèi)存不超過100M,而且動(dòng)作相當(dāng)華麗。另外還有些通過矢量圖制作的Flash網(wǎng)頁無交互游戲,能夠達(dá)到接近0內(nèi)存的消耗,且總資源非常小。
減少對內(nèi)存的消耗有這么些方法:
1.盡量用矢量圖。
2.對于圖片的話,可以通過BitmapByte格式來減少它存放在內(nèi)存的空間。
3.對于資源是swf的話,它對內(nèi)存的消耗是這樣的:每張圖片長*寬*4/1024,也就是說如果你有一張1024*768的圖片,盡管由于你把背景設(shè)置為透明,使得圖片大小只有10K,但是通過Loader讀到內(nèi)存,他的大小是1024*768*4/1024約等于2.8M。增長了將近300倍。(估計(jì)原因是透明點(diǎn)也是會(huì)在Flash中保存的,類似于0Xff000000。)
4.防止內(nèi)存泄露:當(dāng)對象不再需要的時(shí)候果斷置為null,每個(gè)偵聽器在它該remove的時(shí)候果斷remove,要?jiǎng)h除一個(gè)對象里面的所有子對象的所有引用,才能夠刪除該對象,定時(shí)調(diào)用GC執(zhí)行強(qiáng)制垃圾回收。一種方法是當(dāng)需要完全刪除該對象時(shí),調(diào)用一個(gè)自定義函數(shù)rever,該函數(shù)將清空該對象的所有子對象、所有動(dòng)態(tài)屬性、所有偵聽器。
5.沒有用到的東西盡量少加載到swf中。
6.對對象進(jìn)行引用時(shí)一定要想清楚。(局部變量如果被addChild到舞臺,也是會(huì)占內(nèi)存的)
posted on 2010-04-22 19:17
ACong 閱讀(175)
評論(0) 編輯 收藏 引用