日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
初探AIRforAndroid開發(fā)

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

成都創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元銅山做網(wǎng)站,已為上家服務(wù),為銅山各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

介紹移動應(yīng)用程序

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

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

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

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

ViewNavigator處理視圖切換的方法:

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

ViewNavigator.pushView方法用于轉(zhuǎn)換到新的視圖,例如,當(dāng)用戶在頻道列表頁面選擇了一個頻道時,我們可以執(zhí)行

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

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

 
 
 
 
  1. this.addEventListener(KeyboardEvent.KEY_UP,function(e:KeyboardEvent){ 
  2.     if(e.keyCode == Keyboard.BACK){ 
  3.         e.stopPropagation(); 
  4.         //其他操作,例如存儲數(shù)據(jù)等 
  5.         //其他操作完畢 
  6.         navigator.popView(); 
  7.     }  
  8.  }); 

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

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

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

 
 
 
 
  1. private function restoreState():void{ 
  2.     if(!data){ 
  3.         data = new Object(); 
  4.     } 
  5.     if(data.selection){ 
  6.         channelList.selectedIndex = data.selection; 
  7.     } 
  8.     if(data.scrollPosition){ 
  9.         channelList.dataGroup.verticalScrollPosition = this.data.scrollPosition; 
  10.     } 

優(yōu)化技巧與注意事項(xiàng)

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

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

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


當(dāng)前名稱:初探AIRforAndroid開發(fā)
標(biāo)題URL:http://www.5511xx.com/article/dhggsjj.html