人人農(nóng)場經(jīng)驗總結(jié)_第1頁
人人農(nóng)場經(jīng)驗總結(jié)_第2頁
人人農(nóng)場經(jīng)驗總結(jié)_第3頁
人人農(nóng)場經(jīng)驗總結(jié)_第4頁
人人農(nóng)場經(jīng)驗總結(jié)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、我們開發(fā)游戲時經(jīng)常會遇到這樣的情況:當(dāng)flash畫面中同時出現(xiàn)多個動畫在播放時,畫面就會變得很卡,鼠標(biāo)的操作也變得很不連貫,特別是矢量圖做的動畫很輕易的就使cpu占滿。這樣就給用戶體驗帶來了不好的影響。一般我們想到、采取的做法就是減少動畫數(shù)量、降低動畫品質(zhì),或者干脆停止動畫。這樣雖然可以起到一定的效果,但是治標(biāo)不治本,游戲的觀賞性大打折扣,很多好的設(shè)想沒法實現(xiàn),實在是一種遺憾。(詳見demo_大量子顯示對象)因此,優(yōu)化flash畫面渲染勢在必行。顯示列表的淘汰機制顯示對象的位圖緩存顯示容器的鼠標(biāo)優(yōu)化顯示列表的淘汰機制 由于flash虛擬機的顯示渲染效率比較低,一般游戲90%的性能消耗都用在了動

2、畫渲染上,因此如果我們集中主要力量去優(yōu)化顯示,就能獲得較好的程序流暢度。 一般來說,同一時間處在顯示列表中的動畫越多,cpu資源消耗就越大,當(dāng)我們在做一個比較大的場景的時候,肯定有很多顯示對象是處在屏幕外的,雖然在屏幕外,但是flash player并不像我們想象當(dāng)中的那么聰明,不對其進行處理。那么當(dāng)場景很大的時候,程序就會變得很卡,因為有很多看不見的動畫在消耗著cpu資源。 優(yōu)化原理:計算出當(dāng)前可見的對象,及時從顯示列表中移除當(dāng)前看不見的對象,只顯示需要顯示的,這樣就可以讓player減少很多不必要的計算量。(詳見demo_淘汰機制)顯示列表的淘汰機制 顯示對象僅僅移出顯示列表確實達到了一定

3、的效果,但是這些存在于內(nèi)存中的對象仍然在運行,它們身上的事件偵聽、腳本、動畫的播放都在悄悄消耗著cpu資源。 當(dāng)我們確定一個顯示對象,比如MovieClip已經(jīng)處于淘汰列表時,不光要將它移出顯示列表,還要調(diào)用它的stop()方法讓它處于停止?fàn)顟B(tài),如果它對EnterFrame進行了偵聽,而且偵聽處理函數(shù)很復(fù)雜的話,一定要暫時移除這個事件偵聽。因為即使stop了,仍然會發(fā)出EnterFrame事件。(詳見demo_淘汰機制加強版)顯示列表的淘汰機制小結(jié):移除不可見對象,只顯示當(dāng)前可見對象。停止顯示列表外顯示對象的動畫,移除EnterFrame等仍然會觸發(fā)的事件偵聽器。顯示對象的位圖緩存 矢量圖和位

4、圖優(yōu)劣比較:l 矢量圖矢量圖體積較小,可以進行任意的放大和縮小仍能保持其畫面品質(zhì)而不出現(xiàn)鋸齒、變模糊或粗糙。但是矢量圖的呈現(xiàn)是完全通過cpu計算得出的,因此大量的矢量動畫對cpu消耗比較大。顯示對象的位圖緩存 位圖位圖是flash中渲染速度最快的對象類型,一般的機器至少可以支持超過1000個50*50的位圖動畫同時在舞臺上播放。(詳見demo_位圖緩存_多顯示對象)但是位圖體積較大,大量使用會大幅增加flash文件體積。并且縮放之后會產(chǎn)生鋸齒,雖然可以對其設(shè)置smooth屬性避免,但是這樣會增加cpu占用。顯示對象的位圖緩存 巧用位圖(Bitmap)Bitmap對象是flash中渲染速度最快的

5、,同時它還有一個特點是多個Bitmap實例可以共用同一個BitmapData對象,在這種情況下,多個Bitmap實例和單個Bitmap實例所占用的內(nèi)存相差無幾。綜合以上特性,我們可以使用Bitmap將矢量圖動畫緩存為位圖動畫,多個相同的對象共用同一份BitmapData數(shù)據(jù),這樣既可以大幅降低cpu占用,又可以節(jié)省內(nèi)存,同時還避免了直接在庫里面使用圖片而造成flash文件變大的問題。(詳見demo_淘汰機制+位圖緩存)顯示對象的位圖緩存小結(jié)優(yōu)化原理:預(yù)先渲染好要播放的動畫,將渲染結(jié)果緩存到內(nèi)存中,需要用時直接從內(nèi)存中獲取交給flash去渲染,減少大量的重復(fù)計算。本質(zhì)上就是以空間換時間的一種應(yīng)用

6、方式。顯示容器的鼠標(biāo)優(yōu)化當(dāng)一個Sprite里面包含了成百上千個子顯示對象時,會出現(xiàn)的問題是當(dāng)鼠標(biāo)在上面劃過時cpu占用率很高。這是因為flash player會遍歷這個容器中的所有對象以檢查是否和鼠標(biāo)重合,以便發(fā)出MouseMove、Roll_Over、Roll_Out這類事件,這類計算需要消耗較多的資源,當(dāng)子對象很多,特別是子對象內(nèi)部也有很復(fù)雜的層級關(guān)系時計算的次數(shù)就會成倍增加,而且鼠標(biāo)每移動一點都會進行一次這樣的大量計算,造成程序運行緩慢。(詳見demo_大量子顯示對象)顯示容器的鼠標(biāo)優(yōu)化 禁用子對象很多的顯示容器的鼠標(biāo)事件當(dāng)遇到這種情況時,將容器的MouseChildren和MouseEnabled屬性設(shè)置為false,這樣flash player就不會對其子對象、孫對象進行鼠標(biāo)檢測計算,鼠標(biāo)在上面移動時cpu沒有再出現(xiàn)大幅波動的情況。但是帶來的問題是這樣就不能獲得子對象的鼠標(biāo)事件。替代辦法是在需要的時候使用getObjectsUnderPoint()方法獲取一個數(shù)組,返回目前處于鼠標(biāo)位置的顯示對象,然后對其進行處理。(詳見demo_大量子顯示對象)Flash Player10.1adobe公司將要發(fā)布的flash player10.1

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論