国产成人精品a视频一区www_国产区视频在线观看_99色视频_欲色av_亚洲一区电影_亚洲综合视频一区

初探AIR for Android開發

來源:網絡

點擊:879

A+ A-

所屬頻道:新聞中心

關鍵詞: AIR,Android開發

      Adobe發布mobile AIR已經有一段時間了,但是移動設備的UI與控件與PC端截然不同,導致真正使用AIR技術開發的移動設備程序少之又少,而前段時間,Adobe終于發布了包括移動UI組件的Flex SDK “Hero” (就是以前的Slider),雖然只支持Android系統,但是我們可以看到電子市場上使用AIR技術開發的程序越來越多。本文就將以MP3電臺為例,介紹使用Flex Hero 開發mobile AIR應用程序的一些方法和心得。

     

     

      介紹移動應用程序

      移動程序界面中有一個重要的概念:屏幕,如下圖

      

      在MP3電臺這個程序中,選臺界面和播放界面就是兩個“屏幕”,在PC端,這些操作是可以在一起進行的,可是由于移動設備屏幕大小的原因,無法塞在一個界面里。所以我們在選完臺之后,整個屏幕都將轉換為電臺播放界面。Flex Hero中的View

      在Flex “Hero”里,“屏幕”的概念叫做View。hero中關于移動平臺的核心類如下:

      

      其中,MobileApplication相當于桌面版本的Application,是整個程序的容器。ViewNavigator管理各個View的顯示與切換,也包含頂部控制欄ActionBar。

      

      

     

        ViewNavigator處理視圖切換的方法:

    navigator.pushView(view,data,transition=null);navigator.popView(transition=null);

        ViewNavigator.pushView方法用于轉換到新的視圖,例如,當用戶在頻道列表頁面選擇了一個頻道時,我們可以執行

    navigator.pushView(RadioPlay,{channel_item:channelList.selectedItem});

        這樣的話,就切換到了RadioPlay這個視圖。這時,如果用戶按下了android上的后退按鈕,則Flex框架會自動執行navigator.popView操作,這樣會回到上一個視圖。當然,我們也可以捕獲這個鍵盤事件,然后執行自定義代碼。數據驅動的視圖

    this.addEventListener(KeyboardEvent.KEY_UP,function(e:KeyboardEvent){if(e.keyCode == Keyboard.BACK){e.stopPropagation();//其他操作,例如存儲數據等//其他操作完畢navigator.popView();}});

        視圖切換時,Flex默認會把上一個視圖的UI銷毀(可以通過設置destructionPolicy=”none”來避免銷毀),這樣一來,我們回退到上一個視圖的時候,就會丟失之前的UI狀態,比如說頻道列表的選中狀態View包含一個屬性data,當開發者使用pushView方法時的第二個參數data將被賦值到這個屬性中。而每次用戶按下機身上的返回按鈕,Flex框架執行popView方法自動恢復歷史記錄時,也會把上一次的data屬性重新放到View的構造方法中。可以看出,如果我們需要在界面切換時保存當前視圖的所有狀態,相關代碼如下:

    this.addEventListener(FlexEvent.VIEW_DEACTIVATE,saveState);private function saveState(event:Event):void{this.data.selection = channelList.selectedIndex;this.data.scrollPosition = channelList.dataGroup.verticalScrollPosition;}

        這樣,我們在離開頻道列表頁的時候,就會把當前列表的選中狀態記錄下來,在重新顯示這個View的時候,我們可以再恢復回來:

    private function restoreState():void{if(!data){data = new Object();}if(data.selection){channelList.selectedIndex = data.selection;}if(data.scrollPosition){channelList.dataGroup.verticalScrollPosition = this.data.scrollPosition;}}

        優化技巧與注意事項

        Android上的AIR不會自動退出,也就是說,當用戶按下home鍵或者后退到主屏幕時,AIR程序依然在運行。對于電臺這樣一個應用,后臺運行是合乎情理的,但是如果想像傳統程序一樣,后退即退出的話,則需要額外做一些工作了:

    if(Capabilities.cpuArchitecture=="ARM"){NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleDeactivate, false, 0, true);}private function handleDeactivate(event:Event):void{NativeApplication.nativeApplication.exit();}

        AIR在一些設備上的動畫運行效率比較低,我們可以給運動的元件設置cacheAsBitmapMatrix=true,將此元件交給GPU硬件渲染。這個屬性和桌面版本的cacheAsBitmap的用法幾乎完全一樣,對于需要平移、縮放的顯示對象,設置這個屬性可以大大加快動畫效率。

    (審核編輯: 智匯小新)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 国产乱人伦av在线a 日韩电影中文字幕 | 欧美小电影 | 羞羞在线视频 | 九九热这里只有精品6 | 韩日一区二区三区 | 欧美午夜精品理论片a级按摩 | 超碰av人人 | 午夜精品久久久久 | 国产美女精品人人做人人爽 | 日韩av一区二区三区在线 | 国产精品久久 | 日韩国产在线观看 | 欧美在线网站 | 啪一啪操一操 | 欧美久久一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 久久精品一区二区三区四区毛片 | 激情网五月天 | 日韩精品一区二区三区中文在线 | 久久久久久久久久久成人 | 狠狠躁天天躁夜夜添人人 | 日本一区二区不卡 | 精品一区二区三区四区五区 | 国产九九在线观看 | 国产精品一区二区久久久久 | 超碰激情| 蜜臀91精品国产高清在线观看 | 一级做a爰片毛片 | 国产专区在线播放 | 成人欧美一区二区三区白人 | 欧美日韩国产中文字幕 | 欧美视频在线观看一区 | 一级在线| a毛片毛片av永久免费 | 免费一区二区三区 | a一级片在线观看 | 天天影视综合 | 欧美二区在线观看 | 色偷偷噜噜噜亚洲男人的天堂 | 欧美日韩激情四射 | 男女羞羞羞视频午夜视频 |