成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

初探AIR for Android開發

移動開發 Android
Adobe發布mobile AIR已經有一段時間了,本文就將以MP3電臺為例,介紹使用Flex Hero 開發mobile AIR應用程序的一些方法和心得。

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解析

ViewNavigator處理視圖切換的方法:

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

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

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

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

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

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

  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; 

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

  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.     } 

優化技巧與注意事項

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

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

責任編輯:佚名 來源: baiduux
相關推薦

2013-05-14 09:54:27

Android開發開源開發環境

2012-02-28 13:52:45

Adobe AIRAndroidFlash

2009-10-30 10:45:45

ScalaEclipseAndroid

2013-05-03 15:17:59

Android開發Android SDK

2013-05-03 15:06:08

AIR移動應用Android開發

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2013-05-14 09:57:37

2013-05-14 10:27:46

Android開發設置程序屬性

2013-05-14 10:37:10

AIR Android設置訪問權限

2013-05-14 11:16:26

AIR Android旋轉手勢

2013-05-14 10:39:27

AIR Android打包APK文件

2010-08-11 10:58:06

AndroidAndroid NDK

2011-11-16 16:21:09

AdobeAIR

2013-05-14 10:56:45

AIR Android多點觸摸

2012-07-09 10:22:28

Mono for An

2017-01-15 18:32:39

Openresty架構性能

2013-05-14 09:50:44

Android開發Flash Build

2013-05-14 10:05:10

Android開發游戲設計

2013-05-14 10:10:28

Android開發棋子類Grid

2012-03-09 13:26:53

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人免费网 | 99亚洲精品 | 欧美午夜精品 | 五月天婷婷丁香 | 亚洲精品欧美精品 | 国产麻豆一区二区三区 | 中文字幕久久精品 | 超碰97免费 | 日本三级电影在线看 | 黄色片亚洲 | 99re视频在线观看 | 欧美在线日韩 | 欧美激情久久久 | 中文字幕国产 | 美女一级毛片 | 亚洲欧美日韩精品久久亚洲区 | 亚洲精品欧美一区二区三区 | 欧美在线观看一区 | 中文字幕在线视频免费视频 | 欧美色性| 久久久久久黄 | 一级做a爰片久久毛片免费看 | 岛国av免费看 | 九九99九九精彩46 | 日韩欧美在线免费观看视频 | 美女黄网 | 午夜激情在线 | 国产日韩一区二区三免费高清 | 中文字幕一区二区三区精彩视频 | 国产 日韩 欧美 在线 | h免费观看| 亚洲一区中文字幕在线观看 | 亚洲福利精品 | 精品国产区 | 亚洲欧美中文日韩在线v日本 | 欧美一级黄色免费 | 亚洲一区国产 | 粉色午夜视频 | 中文字幕不卡视频在线观看 | www.国产| 国产精品成人国产乱一区 |