隨著flash包含內容元素的增多,整個程式會變得越來越龐大。這時候,對flash效能的優化,將會是必須要考慮的乙個內容。下面,我為大家講解下在as3.0裡,如何應用快取技術快取顯示物件,從而獲得效能上的提公升。
首先,我們先了解下,flash的重新整理機制是怎樣的。flash是乙個逐幀演示的動畫,在顯示列表中的物件,flash本身是不知道哪些需要重新整理,哪些不 需要重新整理的。因此,每一幀,flash都會把整個內容都重新整理一次。也正是因為這個原因,當舞台上(包括舞台外看不見的區域),如果包含大量大面積、複雜的 圖形時,flash的執行速度會明顯下降。為了解決這個問題,flash對顯示物件引入了「位圖快取」的概念。
那麼,什麼是點陣圖快取呢?他的優化原理是怎麼樣的?我們可以這麼想,flash的舞台是乙個很大的容器,裡面有許許多多的元件。其中呢,有一些元件是不斷 變化的,而另外一些元件是靜止的。可是flash區分不出來哪些是不斷變化的,哪些是靜止的,他只好全部都重新整理一遍。那麼位圖快取,其實就是告訴 flash說,這一些元件是靜止的,你別去重新整理啦!
可是,是不是所有靜止的元件,都需要快取呢。那也不是的。因為flash快取的代價非常大,乙個顯示物件,標識了快取後,占用記憶體的大小比標識前,可能要 大上幾百倍。而如果只是簡單的小組件,快取和不快取,效能上也沒什麼大的區別,就真的沒必要耗費那麼大的記憶體了,價效比低嘛。所以,要快取的,也僅僅只是 那些比較複雜,又相對靜止的顯示物件。
上面提到了「靜止」的概念,什麼樣的情況算靜止呢?當然,一動不動自然是靜止了。但是呢,如果只是簡單的平移,或者說縮小快取物件,那雖然是變化的,但對 效能是沒什麼影響的,因此也可以作為快取的目標。但如果物件經常運動,比如旋轉或者放大顯示物件,那麼因為產生變化,flash不得不去重新整理,啟用快取對 效能沒有優化,反而大量的佔據記憶體,就得不償失了。
如果你把上面的內容都看懂,明白位圖快取的原理,那麼,你應該很清楚的知道,什麼情況下應該啟用位圖快取,什麼情況下不應該啟用。flash的幫助文件 上,是明確的列出了「四要四不要」,但我認為看那個東西沒什麼意義,真實的情況遠比那個要複雜的多,只有明白原理,才能做出最佳的判斷。當然,還有乙個笨 辦法,那就是兩種方式都用一下,然後比較下占用記憶體的情況、占用cpu的情況,和實際的執行速度。從理論上來說,這個方法才是最有說服力的,就是麻煩了 些。
cacheasbitmap:該屬性決定顯示物件是否開啟位圖快取,預設是false。
scrollrect:設定顯示物件的滾動矩形範圍。當更改scrollrect物件的x和y屬性時,顯示物件會在矩形內滾動(就是上面說的平移)。
頁面快取 url快取 物件快取
頁面通用邏輯 當使用者的請求到達後端時,先去redis中查詢快取,如果快取中找不到,則進行資料庫邏輯操作,然後渲染,存入快取並返回給前端!如果在快取中找到了則直接返回給前段。儲存在redis快取中的頁面需要設定時間,根據資料變化是否頻繁進行調整,一般都是1 2min。這種快取一般用於不會經常變動的資...
顯示物件 DisplayObject
顯示物件 displayobject displayobject類是所有顯示物件的父類,該類歸納總結了一些顯示物件共有的特性,這些共有的特性被整理成為一些列的屬性與方法。1,顯示物件的基本概念 1 屬性 上面四幅圖中中展示了顯示物件中比較基礎也是很常用的可視屬性,下面列表是顯示物件的全部可視屬性。a...
顯示arp快取的程式
從freebsd4.5的arp命令的源 中獲得,可以在macos10.6上編譯,執行。gcc o arp wall arp.c include include include include include include include include include include includ...