999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Flash應用程序在移動端的顯示效率研究

2013-10-20 08:36:04矯桂娥
微型電腦應用 2013年3期
關鍵詞:舞臺效率優(yōu)化

矯桂娥

0 引言

隨著移動平臺市場的逐步擴張與發(fā)展,flash平臺技術具有跨平臺的開發(fā)特點,滿足了移動應用程序的良好用戶體驗的需求,但同時也因為對所有的平臺和系統(tǒng)都提供了兼容性的訪問,決定了在性能上必定有所損失。

Flash執(zhí)行效率存在很多的影響因素,通常可以通過優(yōu)化代碼結構(避免創(chuàng)建太多的實例、及時清理事件監(jiān)聽等)、提高渲染性能(使用CacheAsBitmap屬性等)提高flash應用程序的執(zhí)行效率。在其他條件完全相同的情況下,本文探討移動端應用程序,如何優(yōu)化影響顯示效率的因素,以提高顯示效率進而提高運行效率。常見的影響顯示效率的因素有1)舞臺對象的刷新問題 2)內存使用率,包括內存垃圾的回收、顯示對象的種類等 3)代碼的結構,代碼中對 CPU的損耗等 4)Flash文件和網(wǎng)絡、數(shù)據(jù)庫連接時,所產生的運行效率等等。

而這其中,本文主要討論舞臺對象的刷新問題。

1 舞臺對象顯示效率優(yōu)化的關鍵

舞臺對象的顯示通常是利用 CPU進行重繪(redraw)得到的。重繪是通過Flash Player以SWF內容的幀頻速度來刷新需要變化的內容,而這個刷新的過程我們通稱為重繪。而作為主要前端對象的表現(xiàn),會存在較多的對象顯示的需求,因此重繪是Flash Player性能消耗的主要根源。尤其是前端要顯示的動畫、還有若干的元件嵌套問題。

1.1 重繪

傳統(tǒng)的flash制作技術,是在舞臺上添加一些顯示對象,例如圖片和元件,并且通過代碼去控制這些顯示對象的動作。

要改進顯示舞臺對象的效率,務必在構建項目時使用重繪區(qū)域選項。使用此選項可以查看 Flash Player 正在呈現(xiàn)和處理的區(qū)域。通過在調試播放器的上下文菜單中選擇“ 顯示重繪區(qū)域” 可以啟用此選項。每次 Flash Player 重繪的區(qū)域不會超過3個,即便舞臺上有多于3個的顯示對象需要被重繪,F(xiàn)lash Player 會將其中的兩個或者多個集合(根據(jù)位置來判斷)在一起,然后重繪在一個大區(qū)域里面。

但是重繪卻是性能消耗的主要根源,通常一個Flash的應用程序,其性能可能 70% - 90%(甚至更高)是消耗在重繪上,并且對于Flash Player 11以前的版本,F(xiàn)lash項目為CPU單核運算,對于所有的顯示效果,也是通過CPU來渲染顯示。那么提高Flash應用程序的運行效率和減少重繪有著莫大的關系。

1.2 MovieClip的性能分析

舞臺的顯示對象中,元件占了絕大多數(shù),其中尤以影片剪輯元件(MovieClip)為主。

MovieClip類繼承了很多類特定的屬性、事件和方法。因此MovieClip對象在內存中所占的空間就會增加很多,并且也會讓CPU消耗在一些沒有必要的地方,如圖1所示:

圖1 影片剪輯元件的繼承關系

這種傳統(tǒng)的開發(fā)方式以其開發(fā)快速,代碼量少,便于構架的特點,比較適合快速開發(fā)靜態(tài)展示類移動項目。作為初學者學習和理解程序的基礎,這也是一條必經之路。并且在硬件配置較高的計算機端,運用傳統(tǒng)顯示對象開發(fā)的方法仍然是最常用的方法之一。

盡管可以在代碼和構架方面盡可能地優(yōu)化,但是這種技術過于傳統(tǒng),運用在移動端應用程序的開發(fā),很難獲得理想的運行效率。

2 Blitting技術優(yōu)化顯示效率

Blitting的基本原理是運用點陣化運算操作將多張位圖合并為一張的計算機圖像處理方式,運用位圖渲染的方法來渲染顯示對象,通俗的講就是用位圖代替元件。選取目標圖像后,拷貝像素,再將拷貝后的像素重新繪制到顯示容器中,每個像素通過按位點陣操作的方法。而拷貝后被添加到顯示列表中的是由像素點組成的位圖(Bitmap)。Bitmap類的繼承關系,如圖2所示:

圖2 Bitmap的繼承關系

與MovieClip相比,Bitmap不是顯示容器、不接收鼠標事件等,意味著Bitmap比MovieClip更加輕便。如果將舞臺中大量的MovieClip全部通過Bitmap來代替,勢必會使得程序的運行效率有很多的提高。這就是 Bliting提高顯示效率的關鍵。

筆者基于flash cs 6環(huán)境創(chuàng)建一個測試程序,舞臺大小為1024 *768,測試幀頻(FPS)設定為60,效果是舞臺上每一幀會有不斷下落的五角星,在移除舞臺后即被刪除, PC端運行flash swf影片文件;移動端,通過Adobe AIR 進行打包,形成flash ipa格式的文件,然后安裝入Ipad中運行。后面的相應效率的比較都是基于這個測試用例,如圖3所示:

圖3 測試用例的舞臺顯示效果

傳統(tǒng)元件實現(xiàn)的方法,CPU需要分別計算每一個元件的下落,會使得CPU的損耗相當嚴重。經測試,在PC上,舞臺上同時存在的星形數(shù)量大約為150個,幀頻為61/60,可見執(zhí)行的很流暢。通過打包,在 ipad上運行,執(zhí)行效率有明顯的下降。

基于Blitting的原理,修改程序代碼,使用copyPixels()的方法,拷貝位圖的像素,來代替原本在每一幀都實例化一個新的元件對象,運行效率則有顯著的提高。運用 Blitting技術選擇用位圖渲染的方法去替代傳統(tǒng)的現(xiàn)實對象,在運行效率、開發(fā)速度以及代碼量上都可以獲得較好的成績。適合大部分情況下 Flash游戲在移動端和 PC端的開發(fā)。但是Blitting的對象顯示,仍然依賴于CPU的消耗。當被渲染的對象特別復雜時,Blitting方法依然會遇到瓶頸。隨著移動終端設備屏幕尺寸越來越大,分辨率越來越高, CPU的壓力會越來越大。

3 Staring技術提高顯示效率

Starling是一個完全基于Flash Player 的API開發(fā)的2D框架,在Starling內部分裝了一些Stage3D(Molehill)的 API,這樣可以借助Stage3D的強大功能,調用顯卡來渲染顯示對象。

Starling框架是基于Flash Player開發(fā),因此在開發(fā)和使用過程中,不需要安裝額外的插件。并且Starling是一個開源的框架,這樣使得框架在使用的過程中具有靈活性。

Starling調用GPU工作的原理,大致可以分為以下兩個步驟。

(1) Starling中封裝了Stage3D的部分代碼,可以通過這些代碼來間接使用Stage3D中的某些功能。

(2) Stage3D引擎中有代碼可以調用電腦顯卡的OpenGL、DirectX驅動或者OpenGLES2手機顯卡驅動。然后通過這些驅動來調用顯卡來幫助渲染顯示界面,從而提高渲染效率。

在使用Starling時應該注意的是,Starling中模仿了Flash原生的API和顯示列表。但是在Starling中的對象是添加在Stage3D的顯示列表中,而非原生的Flash列表。并且Stage3D的顯示列表是位于原生 Flash列表的下方。因此在使用了Starling后,原生顯示列表中的任何東西都會覆蓋在它的上方。并且由于采用的是GPU渲染,在Stage3D的顯示列表中,不會存在任何的重繪區(qū)域。

Starling的方法在調用stage3D引擎達到完全GPU渲染的方式之后,可以獲得很好的游戲體驗性。對于復雜的粒子效果的渲染,也可以游刃有余。介于消費者對于畫面的品質要求日益增加的情況,Starling方法已具備作為將來制作移動端Flash游戲主流方法的條件之一。但是由于運用Starling開發(fā)對開發(fā)者本身的能力要求較高,公司方面需要一定的時間做技術儲備,并且開發(fā)周期也會相應的拉長。因此并不是所有的項目都適合選擇這種相對復雜的方法來完成。

還是上面的測試用例,使用 Starling框架中所提供的API,可以將幀頻維持在一個較高的水平,但是不能超過60,否則也沒有意義了,反而會更消耗資源。關鍵代碼如下:

測試用例,如圖4所示:

圖4 三種不同情況下的運行效率比較

基于傳統(tǒng)技法(普通版)、Blitting技術以及starling上述3種情況下,每隔5秒鐘,各自的幀頻情況,從圖中可見,Starling的開發(fā)方式使得運行效率有很大的提高。

4 比較

為了進一步的測試Blitting版的程序與Starling版本的程序在運行效率上的區(qū)別。筆者對每一個掉落的星形都添加了透明度的變化。計算機在渲染帶有透明度的圖形時,需要更改圖形中每一個像素點顏色中的透明通道的值。不帶有透明度變化的像素點為3位16進制,而更改了Alpha值之后,打開了透明通道,像素點變?yōu)?位16進制。對移動設備來說,這樣的計算量相當繁重,比較消耗資源。修改后,運用Blitting方法的幀頻有了明顯的下降。Starling框架調用GPU渲染后,幀數(shù)依然可以維持在一個較高的水平。效果分析,如圖5所示:

圖5 有透明度變化的情況下兩種改進版本的比較

5 結語

影響flash程序運行效率的因素很多,就像一個木桶,存水量的多少,取決于最短的那塊木板。不同情況下,需要優(yōu)化的方面也不同。顯示對象的優(yōu)化,是最重要的因素之一。本文主要闡述兩種不同的技術方案以提升程序執(zhí)行效率、優(yōu)化用戶體驗。

兩種開發(fā)方式(Blitting版本、Starling版本)各有優(yōu)缺點,在保證程序流程運行的前提下,必須選擇合理的開發(fā)方式來完成項目,以此維持Flash游戲在PC端上的良好表現(xiàn),保證移動設備上的用戶需求和用戶體驗。

[1]黃海明,劉金剛,易建強.基于 SDL & OpenGL 的三維游戲優(yōu)化技術[J].計算機工程,2009,33(20):213-215,218.

[2]Weiyin Hong,James Y.L.Thong,Kar Yan Tam-Does .Animation Attract Online Users' Attention? The Effects of Flash on Information Search Performance and Perceptions [J].Information Systems Research,2004,15(1)

[3]吳微微,李誼瑞,楊建思,范靈春.基于Aspmap 的WebGIS 應用系統(tǒng)的設計與實現(xiàn).[J]計算機工程與設計.2011,32(2):719-723.

[4]胡蓉,張東寧,朱栗華.ActionScript 3.0 游戲編程(第2版)[M].北京:人民郵電出版社,2012.3.

[5]宋 玉.關于Flash 動畫創(chuàng)作過程中源文件優(yōu)化方式的研究[J].電影評介,2010,048:72-73.

[6]戰(zhàn)曉良.Flash網(wǎng)頁中針對網(wǎng)絡環(huán)境的優(yōu)化設計研究.[J]科教縱橫,2011,12:217.

[7]李暢,王忠芝.在Flash游戲中實現(xiàn)玩家與情節(jié)的互動[J].科技信息, 2010,7: 52-53.

[8]成樂,周祖榮.ActionScript在游戲制作中的應用[J].科技信息 ,2012,(12): 238-239.

猜你喜歡
舞臺效率優(yōu)化
軍迷大舞臺
超限高層建筑結構設計與優(yōu)化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
軍迷大舞臺
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
跟蹤導練(一)2
“錢”、“事”脫節(jié)效率低
吧啦吧啦小舞臺
好孩子畫報(2014年6期)2014-07-25 03:20:04
主站蜘蛛池模板: 欧美亚洲一二三区| 国产最新无码专区在线| 国产午夜看片| 在线播放91| 欧美劲爆第一页| 波多野结衣亚洲一区| 国产91久久久久久| 国产成人免费手机在线观看视频| 成人精品区| 影音先锋亚洲无码| 妇女自拍偷自拍亚洲精品| 久久9966精品国产免费| 久久精品国产免费观看频道| 偷拍久久网| 五月丁香伊人啪啪手机免费观看| 欧美亚洲另类在线观看| 91在线免费公开视频| 日韩精品一区二区三区视频免费看| 日韩福利在线视频| 尤物在线观看乱码| 国产一级毛片网站| 2021天堂在线亚洲精品专区| 亚洲国产成人久久精品软件| 无码人妻热线精品视频| 伊人91视频| 97国产精品视频自在拍| 欧洲亚洲欧美国产日本高清| 91亚洲精品第一| 99热这里只有精品免费| 国产一区在线视频观看| 亚洲精品成人片在线观看| 亚洲男人在线| 91福利国产成人精品导航| 欧美福利在线| 午夜日本永久乱码免费播放片| 不卡视频国产| 久久青草热| 日韩欧美中文在线| 免费在线色| 九色在线观看视频| 在线视频亚洲欧美| 国产麻豆永久视频| 国产在线精品香蕉麻豆| 国产一线在线| 92午夜福利影院一区二区三区| 波多野结衣视频网站| 中文国产成人久久精品小说| 亚洲AV无码久久精品色欲| 欧美亚洲欧美| 亚洲床戏一区| 亚洲全网成人资源在线观看| 亚洲人成网站在线观看播放不卡| 99热这里只有精品2| 久久狠狠色噜噜狠狠狠狠97视色| 毛片大全免费观看| 一本大道无码高清| 国产视频入口| 911亚洲精品| 国产精彩视频在线观看| 国产成人一二三| 午夜欧美理论2019理论| 大乳丰满人妻中文字幕日本| 亚洲精品高清视频| 免费又黄又爽又猛大片午夜| 九九这里只有精品视频| 国产91精选在线观看| 欧美精品xx| 国产乱肥老妇精品视频| 五月天婷婷网亚洲综合在线| 亚洲首页在线观看| 日本妇乱子伦视频| 亚洲av无码牛牛影视在线二区| 久久这里只有精品免费| 色婷婷久久| 国产波多野结衣中文在线播放| 日日拍夜夜操| 在线国产91| 亚洲大学生视频在线播放| 久久久久久尹人网香蕉| 1769国产精品免费视频| 婷婷色婷婷| 久久久久青草大香线综合精品|