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