亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Flash > 正文

詳細剖析Flash Player重繪

2020-07-17 13:15:29
字體:
來源:轉載
供稿:網友
Flash Player 會以SWF內容的幀頻速度來刷新需要變化的內容,而這個刷新的過程,我們通常稱為“重繪(redraw)”,相信即便是初級的菜鳥也知道,只要使用的是Debug版本的Flash Player, 右鍵菜單里就會有“Show Redraw Regions (顯示重繪區域)” 這個選項,當此選項打開的時候,我們就能清楚地看到此刻場景內被重繪的區域。



那么什么情況下會發生重繪呢?
1、最常見的是情況就是舞臺上的可視組件在形狀、位置、狀態(alpha, scale...)發生改變的時候會觸發Flash Player 的重繪。
2、當一個DisplayObject的層級(ChildIndex)發生改變的時候也會導致重繪。
3、當你將一個Sprite / MovieClip 的buttonMode 設置為 true 的時候,即便是單幀動畫,重繪會在MouseEvent.MOUSE_DOWN的時候觸發。又或者你對DisplayObject設置層級的時候,即便DisplayObject的層級沒有發生改變,也會使得 Flash Player對此顯示對象進行重繪。
既然重繪是為了能夠將顯示內容進行更新,那么一個Flash應用程序就不可避免的要觸發重繪。而重繪卻是性能消耗的主要根源,一個有經驗的Flash開發人員寫出的Flash應用,其性能可能70% - 90%(甚至更高)是消耗在重繪上,那么提高Flash應用程序的運行效率和減少重繪有著莫大的關系。
要減少重繪,首先我們需要對單位每幀重繪大小這個概念進行量化:重繪的大小應該取決于數量和面積。數量取決(但不是完全取決)于可視范圍內的需要更新的顯示對象的數量,假設場景上有兩個閃爍的小圓點并且寬和高都為20,那么重繪的數量為3,而重繪的總面積就為: 20 * 20 * 3 = 1200 (平方像素)。



簡單的看看上面的公式是不是覺得重繪面積的計算很容易呢?那么繼續估計下下面這個情況的重繪面積是多少:

如果你計算的結果是: 20 * 20 * 6 = 2400 (平方像素),那么恭喜你,答錯了...
根據上面的介紹,重繪的大小理應就是重繪的數量 * 單個區域的面積,可是為什么說這個情況就錯呢?讓我們看看問題究竟出在什么地方:

讓人覺得奇怪的地方出現了,重繪區域的數量依舊是3,而面積卻增大了不少,按照圖上給出的坐標信息,我們不難算出,總重繪面積的大小為:
20 * (70 - 20 + 20) * 3 = 4200 (平方像素),比起預先估算的 2400 (平方像素)整整大了 75%!
或許從這個地方開始,大家就開始覺得困惑了。的確,Flash Player的重繪面積并沒有按照我們之前的設想那樣來計算,但是依舊能找到一些規律,仔細來看以下幾種況:

如果你夠細心,應該不難看出每次 Flash Player 重繪的區域不會超過3個,即便舞臺上有多于三個的顯示對象需要被重繪,Flash Player 會將其中的兩個或者多個集合(根據位置來判斷)在一起,然后重繪在一個大區域里面,至此,我們暫時可以將上面兩個重繪法則命名為三區域法則就近合并法則,通過總結出來的這兩個法則,我們就能更加容易地理解Flash Player 重繪的機制,以及解釋在日常調試中遇到的一些重繪現象了。比如QQ牧場里幾個靠得比較近得小動物被放在一個區域里面重繪,而有些動物則不然,被單獨重繪。
當我們了解了重繪機制后,那么接下來就應該進一步去了解如何避免多余的重繪,下面列舉的方法可能大部分都是被大家所熟悉的。
1、當一個帶有動畫效果的DisplayObject在不顯示的時候,不僅僅是將其 visible 屬性設置為 false, 因為重繪依舊會進行,這里你可以選擇暫停掉動畫,又或者利用removeChild(displayObject) 直接將此對象移除出顯示列表。
2、不出現在可視范圍內外觀變化的顯示對象其實是不會發生重繪的,這點相信是Flash本身做了優化,也就是說我的Stage.stageWidth 和 Stage.stageHeight 都為200的情況下,一個處在舞臺上的變化的顯示物體,坐標為(200, 200) 寬高都為10,此時Flash Player重繪內容并不會包括此對象,新版本的Flash Player 甚至在瀏覽器窗口最小化的時候會關閉掉所有的重繪,這個時候你往往會發現CPU占用率驟降,但是應用程序依舊在運行。
3、在設置DisplayObject的層級的時候請先做一個判斷: if(myContainer.getChildIndex(myChild)!=0)
{
myContainer.setChildIndex(myChild,0);
}
運氣好的話,這個判斷最高能帶來200%以上的效率提升。
4、當你的Sprite / MovieClip 設置 cacheAsBitmap = true 這個屬性的時候,當此顯示對象內很小的一個區域(甚至是被遮蓋著的物體)發生變化,會導致整個Sprite / MovieClip重繪。
5、盡量確?;顒拥娘@示內容在非可見區域被暫停活動或者干脆直接移除出顯示列表,這里提到的不可視區域不僅僅是舞臺外不可見的,還包括舞臺內被其他物體遮蓋住的顯示對象。正如之前提到的,重繪是Flash Player性能消耗的主要大戶,所以去優化減小重繪區域面積,減少不必要的重繪操作次數,往往能夠帶來比較大的性能優化回報。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女久久久久久久| 亚洲欧美一区二区三区久久| 在线看日韩av| 欧美精品久久久久a| 国产精品高潮视频| 国产精品一区二区久久精品| 午夜精品福利视频| 大桥未久av一区二区三区| 97欧美精品一区二区三区| 亚洲成色999久久网站| 欧美在线观看视频| www.xxxx欧美| 91精品国产综合久久久久久蜜臀| 欧美整片在线观看| 亚洲人精选亚洲人成在线| 国产精品视频免费在线观看| 这里只有精品在线观看| 日韩视频免费观看| 亚洲电影免费观看高清完整版在线| 精品激情国产视频| 亚洲图中文字幕| 久久人人爽人人爽人人片亚洲| 91精品国产99| 91九色国产在线| 国内揄拍国内精品| 高清欧美电影在线| 成人字幕网zmw| 国产欧美日韩最新| 欧美激情啊啊啊| 中文字幕久久久av一区| 久久精品99久久香蕉国产色戒| 亚洲欧美日韩一区二区三区在线| 91精品国产精品| 国内精品视频一区| 欧美在线亚洲在线| 日韩在线中文视频| 日本精品久久久久影院| 国产美女搞久久| 欧美成人小视频| 欧美成人黄色小视频| 成人疯狂猛交xxx| 91国产在线精品| 国产成人aa精品一区在线播放| 欧美午夜精品久久久久久久| 成人av.网址在线网站| 国产欧美在线观看| 精品人伦一区二区三区蜜桃免费| 国产精品一区二区久久久久| 亚洲人成绝费网站色www| 国外日韩电影在线观看| 韩国国内大量揄拍精品视频| 91色精品视频在线| 欧美成人免费一级人片100| 国产精品美乳在线观看| 亚洲欧美日韩精品| zzijzzij亚洲日本成熟少妇| 26uuu日韩精品一区二区| 久久偷看各类女兵18女厕嘘嘘| 精品久久久久久| 黑人巨大精品欧美一区免费视频| 一本色道久久88精品综合| 色偷偷91综合久久噜噜| 中文字幕最新精品| 国产精品欧美一区二区| 色悠悠久久久久| 黄色成人av网| 91成人国产在线观看| 欧美日韩激情视频8区| 亚洲精品综合久久中文字幕| 亚洲欧美日韩精品久久亚洲区| 欧美成人四级hd版| 91九色单男在线观看| 国产亚洲综合久久| 中文字幕精品久久久久| 欧美成人免费va影院高清| 美女扒开尿口让男人操亚洲视频网站| 欧美性猛交xxxxx免费看| 亚洲性视频网址| 欧美激情第99页| 伊人男人综合视频网| 欧美性猛交xxxx乱大交极品| 久久久国产一区| 亚洲91精品在线观看| 国产福利视频一区二区| 国产在线拍揄自揄视频不卡99| 中文字幕国产亚洲| 久久久久中文字幕| 国产精品电影久久久久电影网| 欧美激情精品久久久久久免费印度| 欧美日韩福利视频| 91黑丝高跟在线| 欧美日韩国产黄| 亚洲一区二区精品| 久久久91精品国产一区不卡| 欧美国产精品人人做人人爱| 性欧美长视频免费观看不卡| 一区二区三区 在线观看视| 全色精品综合影院| 国产日韩欧美自拍| 亚洲精品综合久久中文字幕| 日韩成人激情视频| 国产一区二区三区在线看| 日韩三级成人av网| 国产婷婷成人久久av免费高清| 国产精品69久久久久| 福利一区视频在线观看| 91人人爽人人爽人人精88v| 久久久精品国产一区二区| 欧美成人午夜视频| 国产一区二区丝袜高跟鞋图片| 狠狠综合久久av一区二区小说| 欧美日韩国产精品| 亚洲国产精品成人精品| 亚洲视频在线免费看| 一区二区在线视频| 久久久久国色av免费观看性色| 欧美老女人性生活| 久久精品国产亚洲精品2020| 欧美日本高清视频| 欧美亚洲第一区| 国产精品久久久久久亚洲调教| 久久免费视频在线观看| 国产精品情侣自拍| 日韩电影免费观看在线观看| 91亚洲精品久久久| 国产一区在线播放| 色在人av网站天堂精品| 国外色69视频在线观看| 亚洲日本aⅴ片在线观看香蕉| 91po在线观看91精品国产性色| 成人国产精品色哟哟| 欧美激情国产日韩精品一区18| 欧美极品少妇xxxxⅹ免费视频| 91高潮在线观看| 亚洲国产精品va在线看黑人动漫| 欧美综合一区第一页| 自拍偷拍亚洲区| 亚洲娇小xxxx欧美娇小| 成人免费福利视频| 成人免费视频在线观看超级碰| 狠狠躁夜夜躁人人爽超碰91| 亚洲欧美国产精品久久久久久久| 国产一区二区三区欧美| 最近的2019中文字幕免费一页| 国产精品无码专区在线观看| 欧美另类精品xxxx孕妇| 91精品视频免费观看| 久久精品亚洲国产| 欧美精品生活片| 亚洲美女www午夜| 国产在线精品自拍| 久久精品视频导航| 日韩欧美成人网| 国产在线一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 欧美精品午夜视频| 欧美亚洲午夜视频在线观看| 欧美大胆在线视频| 亚洲精品国产精品久久清纯直播| 中文字幕在线看视频国产欧美| 亚洲国产免费av| 日韩av在线免播放器| 国产精品黄页免费高清在线观看| 国产狼人综合免费视频|