(转)flash位图缓存cacheAsBitmap
矢量圖,是靠 cpu運算出來的。而位圖記錄的顏色信息都保存在了內(nèi)存中。把矢量圖緩存成位圖,以減輕cpu的運算壓力。
?
?
cacheAsBitmap 屬性? ?
cacheAsBitmap:Boolean??[讀寫]
語言版本:??ActionScript 3.0
運行時版本:??AIR 1.0, Flash Player 9
如果設(shè)置為 true,則 Flash Player 將緩存顯示對象的內(nèi)部位圖表示形式。此緩存可以提高包含復(fù)雜矢量內(nèi)容的顯示對象的性能。
具有已緩存位圖的顯示對象的所有矢量數(shù)據(jù)都將被繪制到位圖而不是主顯示。 然后,將位圖作為貼緊到最接近像素邊界的未拉伸、未旋轉(zhuǎn)的像素復(fù)制到主顯示。 像素按一對一與父對象進行映射。 如果位圖的邊界發(fā)生更改,則將重新創(chuàng)建位圖而不會拉伸它。
除非將 cacheAsBitmap 屬性設(shè)置為 true,否則不會創(chuàng)建內(nèi)部位圖。
將 cacheAsBitmap 屬性設(shè)置為 true 后,呈現(xiàn)并不更改,但是,顯示對象將自動執(zhí)行像素貼緊。 動畫速度可能會大大加快,具體取決于矢量內(nèi)容的復(fù)雜性。
只要對顯示對象(當(dāng)其 filter 數(shù)組不為空時)應(yīng)用濾鏡,cacheAsBitmap 屬性就自動設(shè)置為 true,而且如果對顯示對象應(yīng)用了濾鏡,即使將該屬性設(shè)置為 false,也會將該顯示對象的 cacheAsBitmap 報告為 true。 如果清除顯示對象的所有濾鏡,則 cacheAsBitmap 設(shè)置將更改為它上次的設(shè)置。
在下面的情況下,即使將 cacheAsBitmap 屬性設(shè)置為 true,顯示對象也不使用位圖,而是從矢量數(shù)據(jù)呈現(xiàn):
位圖過大:在任一方向上大于 2880 像素。
位圖無法分配(內(nèi)存不足錯誤)。
最好將 cacheAsBitmap 屬性與主要具有靜態(tài)內(nèi)容且不頻繁縮放和旋轉(zhuǎn)的影片剪輯一起使用。 對于這樣的影片剪輯,在轉(zhuǎn)換影片剪輯時(更改其 x 和 y 位置時),cacheAsBitmap 可以提高性能。
=================================================================================
例程說明:
/**
?? ? * 為包含復(fù)雜的矢量圖形(例如文本或漸變)的動畫對象打開位圖緩存可提高性能。但是,如果在顯示對象(如播放其時間軸的
?? ?影片剪輯)中啟用了位圖緩存,您將獲得相反的效果。在各個幀上, Flash Player 必須更新緩存的位圖,然后在屏幕上重繪該
?? ?位圖,這一過程要求許多 CPU 周期。僅當(dāng)緩存的位圖可以一次生成,且隨后無需更新即可使用時,才適合使用位圖緩存功能。
?? ?????? 為 Sprite 對象打開位圖緩存后,移動該對象不會使 Flash Player 重新生成緩存的位圖。更改對象的 x 和 y 屬性不會導(dǎo)致重新生
?? ?成。然而,任何試圖旋轉(zhuǎn)、縮放對象或更改其 alpha 值的行為都將導(dǎo)致 Flash Player 重新生成緩存的位圖,從而降低性能。
?? ?注: AIR 或 Packager for iPhone Preview 中提供的 DisplayObject.cacheAsBitmapMatrix 屬性沒有此限制。通過使用
?? ?cacheAsBitmapMatrix 屬性,可以在不重新生成任何位圖的情況下旋轉(zhuǎn)或縮放對象。此屬性可確保使用 GPU 在屏幕上呈現(xiàn)位
?? ?圖,從而提供性能改進。
?? ???? 緩存位圖占用的內(nèi)存大于常規(guī)影片剪輯實例。例如,如果舞臺上的影片剪輯為 250 x 250 像素,緩存它可能會使用 250 KB 內(nèi)
?? ?存,而未緩存它只需 1 KB。
?? ? * 1.對于只改變x,y時 沒有緩存fps=12左右;慢慢增高應(yīng)該是因為有些mc跑到stage外面了
?? ? * 2.對于只改變x,y時 有緩存fps=30左右
?? ? * 3.對于只改變scaleX,sacleY時 無緩存fps=10,慢慢降低
?? ??? 4.對于只改變scaleX,sacleY時 有緩存fps=3左右
?? ? */
例子:
cacheasbitmap的實例影響.rar
轉(zhuǎn)載于:https://www.cnblogs.com/wonderKK/archive/2013/02/01/2888895.html
總結(jié)
以上是生活随笔為你收集整理的(转)flash位图缓存cacheAsBitmap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS 2012 如何发布 ASP.NET
- 下一篇: [译] Facebook杯2013年编程