日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]基于Starling移动项目开发准备工作

發布時間:2023/12/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]基于Starling移动项目开发准备工作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近自己趁業余時間做的flash小游戲已經開發得差不多了,準備再完善下ui及數值后,投放到國外flash游戲站。期間也萌生想法,想把游戲拓展到手機平臺。這兩天嘗試了下,除去要接入ane接口的工作,小游戲本身不用做任何改動就可以遷移到android和ios手機平臺。只是在手機上,游戲的掉幀情況非常嚴重,遠達不到pc上的體驗效果。看來做flash移動游戲,不用starling框架是不行的。打算這幾天學習下starling,對項目進行改造。

?

基于Starling移動項目開發準備工作

  轉自: Starling中文站 - Starling移動開發教程

  作者: 郭少瑞(NeoGuo)

  現在移動開發可謂熱火朝天,如果您是一位Flash開發者,或許您所在的團隊,已經開始基于Flash內容的移動應用開發了。由于Adobe已經提供了AIR打包技術,來幫我們把同一份程序打包到iOS,Android,BlackBerry等系統或設備,這在很大程度上降低了跨平臺的研發成本,也為傳統的Flash研發團隊進入移動開發領域提供了很好的機會。但是有機遇,也有麻煩。其中一個比較大的麻煩就是性能問題。現在的PC平臺都有很強大的計算能力,我們基于Flash的應用開發,一般不太關心性能問題,但進入移動設備,我們會發現自己面臨的硬件環境相當苛刻(當然現在的智能機硬件配置已經大大改善,讓我們開發上的限制已經寬松了許多)。比如我們基于傳統思路,用Flash電影剪輯等方式做了一個應用,在PC上預覽沒有問題,但在移動設備上卻不能很好的執行(出現丟幀現象,這是顯示渲染的壓力太大所致)。為什么會出現這種情況?因為Flash中傳統的顯示列表機制(Stage,Sprite,MovieClip),都是依賴CPU的,也就是說渲染壓力基本都在CPU上。在移動設備上CPU處理能力低下的情況下,出現丟幀的現象也就不足為奇了。

  能改善這種情況的一種方式就是利用GPU加速,也就是利用顯卡在圖形方面的計算能力,減輕CPU在屏幕渲染上的壓力。但悲劇的是,Adobe在“為傳統的顯示列表機制提供GPU加速”這個工作上進展緩慢,之前曾推出了在配置文件中增加<renderMode>GPU</renderMode>的設置來開啟硬件加速,但不要激動,這個設置對于PC無效,對于移動設備也是限制多多,而且并不穩定。筆者曾經在一個項目中分別設置CPU和GPU模式來測試程序(iPad 1),發現CPU模式反而運行效率更好且穩定。出現這樣的情況相當讓人沮喪,Adobe的技術團隊也專門寫過一篇Blog來解釋其中的難度之大:Flash在之前的架構設計上完全是基于于CPU的(通常我們稱之為軟解),也就是說傳統的2D顯示列表就是為CPU渲染設計的,這對于跨平臺來說非常有效,但現在要遷移到GPU上就非常麻煩了。

  這對我們來說,就意味著如果我們之前有一個復雜的,基于Flash傳統顯示列表的應用或游戲,想要原封不動的移植到智能設備上,而且還要保證和PC相似的執行效率,還是挺困難的。當然Flash盛行了這么多年,開發者也積累了很多行之有效的經驗,來提升運行效率(比如基于Bitmap的動畫實現,以空間換時間),這些經驗可以幫助我們在一定程度上改善現有應用的執行效率。但可能還不夠,移動設備的特性決定我們需要盡可能的將優化做到極致。要做到這一點,我們必須更有效的利用GPU。當然Adobe也意識到GPU對于提升渲染性能的重要性,所以推出了Stage3D。Stage3D雖然也做了抽象(解決平臺無關性),但無疑是和硬件更接近的,基于Stage3D我們可以開發和桌面游戲相媲美的網絡3D游戲。當然因為Stage3D是偏底層的API,學習和掌握的成本也高一些。關于Stage3D本文不做過多介紹,如果您還不了解Stage3D,建議參考下面的文章:

  • Stage3D 翻譯系列之一: Stage3D是如何工作的(一)(概念篇)
  • Stage3D 翻譯系列之一: Stage3D是如何工作的(二)(深入篇)
  • Stage3D 翻譯系列之一: Stage3D是如何工作的(三)(完結篇)

  當然正如其名,Stage3D是面向3D應用的API。如果我們只是想做2D應用,是不是就不能使用Stage3D了呢?當然也是可以的,但編程和實現思路將和我們之前的Flash經驗大不相同,我們需要完全站在顯卡的角度去編寫實現過程,這無疑將是枯燥而且困難的,而且有很高的學習成本。所幸的是,一些具備探索和分享精神的技術達人,在Stage3D的基礎上做了進一步的封裝,以更接近傳統Flash 2D顯示對象的機制,來提供對傳統Flash開發者更加友好的技術框架。這樣的框架已經存在一些,比較知名的有Starling,ND2D等等。其中Starling得到Adobe官方的推薦,其接口也和Flash原有顯示對象非常接近,所以筆者也選擇了Starling來進行項目實踐,并和大家分享這個過程中的經驗。

  Starling是由Gamua團隊推出和維護的一個基于Stage3D的2D框架。這是一個位于奧地利的團隊,有兩位核心開發成員:Daniel Sperl和Holger Weissb ck。他們擅長Objective C和ActionScript,也正是因為這樣,他們實際上有兩個開源框架:Starling Framework和Sparrow Framework,兩個框架的設計思想是一樣的,只是前者面向Flash,后者面向iOS。

下載,安裝和配置

  工欲善其事,必先利其器,讓我們先把“武器”準備好。這里的武器是指我們的IDE,考慮到大多數Flash開發者應該都是基于Flash Builder進行編程的(Flash Professional實在不適合編程,其它第三方IDE比如Flash Develop,當然也很優秀,但為了文章簡練起見,不再涉及其它IDE了,如果您使用其它IDE,請參考IDE的幫助,整合最新的AIR SDK即可),我們就以Flash Builder為準,來介紹后面的操作步驟。

  請安裝最新的Flash Builder 4.6,這個版本已經支持移動項目創建,并且包含了最新的Flex SDK 4.6(PS:我們后面的討論里不包括Flex框架或Flex項目,只是在Flash Builder中任何類型的項目都是依賴Flex SDK來編譯的),但是內置的Flex SDK 4.6包含的是AIR 3.1的SDK,而對于移動設備的Stage3D支持則是在AIR 3.2中實現的。所以這個地方我們要做一下調整,替換Flex SDK中的AIR的部分。

  操作步驟:

  • 進入Flex SDK目錄(Win下面是{您的安裝路徑}\Adobe Flash Builder 4.6\sdks\),您的最新版本應該是4.6,將4.6復制一份,命名為4.6_AIR3.2
  • 從Adobe官方下載最新的AIR SDK,地址是:AIR SDK下載
  • 下載后解壓縮,覆蓋4.6_AIR3.2
  • 啟動Flash Builder,打開窗口->首選項->Flash Builder->已安裝的SDK,新建一個SDK配置,目錄指向剛才創建的4.6_AIR3.2,并設置為默認SDK
  • 新建一個ActionScript手機項目,觀察主應用的XML配置文件的命名空間(比如主類是Main.as,那么配置文件是Main-app.xml),如果命名空間是,則代表配置成功

  然后我們需要下載Starling。當然跟所有的ActionScript類庫一樣,我們可以使用它編譯后的SWC,也可以使用它的源碼。這里筆者建議大家盡量使用源碼,因為作為一個新生框架,Bug是不可避免的,一旦有問題,我們可以追蹤源碼來發現和解決。如果用SWC就沒有這個便利了。

  目前Starling官網( ),提供的穩定下載版本是1.0,從這里下載。然后還有一個正在開發的版本,在github托管,地址:經測試發現,目前Github上的版本也比較穩定,而且Demo里帶了一個iOS的實例,如果您做移動開發,可以嘗試用github上的最新代碼版本。

  下載源碼后,可以通過Flash Builder創建一個庫項目,包含Starling的源碼,Flash Builder會自動將代碼編譯SWC。然后您可以創建一個ActionScript手機項目,在構建路徑->庫路徑這個界面上,引用剛才創建的庫項目即可。

  剛才也說到,源碼中是附帶了例子的,如果您下載的是github上的源碼,里面還有一個專門的iOS的例子。如果您已經具備了Flash開發經驗,那么看這個例子無疑是快速了解Starling使用方式的最佳途徑。

  請遵循下面的步驟啟動這個例子

  • samples目錄實際上包含兩個例子:demo和demo_ios,其中demo_ios需要依賴demo的資源,在后面的步驟中需要注意。
  • 在Flash Builder中創建一個ActionScript手機項目,類型可以設定為iOS,平臺為iPhone,然后引入上面創建的Starling庫。
  • 在源碼設定部分,將demo/src和demo_ios/src兩個目錄全都設定進去,然后設置啟動的Application為demo_ios/src/Startup_iOS.as。
  • 如果沒有提示編譯錯誤,那就表示配置成功,可以用Flash Builder的模擬界面進行測試,可以看到如下的界面:

  如果您想在真實設備測試,就要分情況而言:如果是Android設備,比較簡單,通過自建證書打包為APK,安裝到Android設備即可;如果是iPhone或iPad ,就麻煩一些,您需要一個蘋果認可的簽名證書才能完成打包,這個證書需要注冊蘋果開發者賬號并付費才能獲取,具體過程參見James Li的教程,這里不再細述。

  今天就到這里,后面我會繼續和大家探討使用Starling過程中的一些問題和經驗。

轉載于:https://www.cnblogs.com/leoin2012/p/4478017.html

總結

以上是生活随笔為你收集整理的[转]基于Starling移动项目开发准备工作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。