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

下載本文檔

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

文檔簡(jiǎn)介

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

2、畫(huà)渲染上,因此如果我們集中主要力量去優(yōu)化顯示,就能獲得較好的程序流暢度。 一般來(lái)說(shuō),同一時(shí)間處在顯示列表中的動(dòng)畫(huà)越多,cpu資源消耗就越大,當(dāng)我們?cè)谧鲆粋€(gè)比較大的場(chǎng)景的時(shí)候,肯定有很多顯示對(duì)象是處在屏幕外的,雖然在屏幕外,但是flash player并不像我們想象當(dāng)中的那么聰明,不對(duì)其進(jìn)行處理。那么當(dāng)場(chǎng)景很大的時(shí)候,程序就會(huì)變得很卡,因?yàn)橛泻芏嗫床灰?jiàn)的動(dòng)畫(huà)在消耗著cpu資源。 優(yōu)化原理:計(jì)算出當(dāng)前可見(jiàn)的對(duì)象,及時(shí)從顯示列表中移除當(dāng)前看不見(jiàn)的對(duì)象,只顯示需要顯示的,這樣就可以讓player減少很多不必要的計(jì)算量。(詳見(jiàn)demo_淘汰機(jī)制)顯示列表的淘汰機(jī)制 顯示對(duì)象僅僅移出顯示列表確實(shí)達(dá)到了一定

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論