自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AIR Android:使用TouchEvent類(2)

移動開發(fā) Android
處理用戶交互,本模塊主要介紹了多點觸摸相關(guān)功能的用法,包括觸摸和手勢。處理用戶交互是AIR Android開發(fā)的基礎(chǔ)部分,只有設(shè)計合理、用戶操作符合邏輯的交互,才能增強程序的用戶體驗。因此,熟練掌握常見的交互手法至關(guān)重要。本文為大家介紹使用TouchEvent類。

使用TouchEvent類(2)

由于有監(jiān)聽舞臺stage的Touch事件,因此只要觸摸屏幕上任何一點,Touch事件都將觸發(fā),并在觸摸點處畫一個圓。請注意,拖拽的實現(xiàn)并沒有使用Flash開發(fā)者熟悉的startDrag方法,而是Sprite類新增的startTouchDrag方法,該方法代碼如下:

  1. startTouchDrag(touchPointID:int, lockCenter:Boolean = false,  
  2. bounds:Rectangle = null):void 

 

和startDrag相比,***的區(qū)別是多了一個參數(shù)touchPointID,而touchPointID只在支持觸摸行為的設(shè)備上工作,因此startTouchDrag也只能在觸摸設(shè)備上使用。相對應(yīng)的,結(jié)束拖拽時使用stopTouchDrag方法,代碼如下:

  1. stopTouchDrag(touchPointID:int):void 

在結(jié)束拖拽時也必須輸入touchPointID,以保證是針對同一個觸摸點的動作。

因為模擬器不支持觸摸事件,所以使用觸摸事件的程序必須在真機上運行才能看到效果,如圖3-1所示。

運行TouchEventEx程序,有兩個手指觸摸屏幕上任意兩處,保持觸摸并移動手指,兩個圓將跟隨手指移動。在本例中,程序主類繼承了AppBase,并重寫了init方法,實際上,這將是后面所有實例代碼的模板。在AppBase類中定義了所有程序通用的屬性以及結(jié)構(gòu),完整代碼如下:

  1. package  
  2. {  
  3.  import flash.display.Sprite;  
  4.  import flash.display.StageAlign;  
  5.  import flash.display.StageScaleMode;  
  6.  import flash.events.Event;  
  7.    
  8.  /**  
  9.   * 程序基類,定義了舞臺屬性  
  10.   */  
  11.  public class AppBase extends Sprite  
  12.  {    
  13.     
  14.   public function AppBase():void  
  15.   {  
  16.    //定義舞臺的對齊方式和縮放模式  
  17.    stage.align = StageAlign.TOP_LEFT;  
  18.    stage.scaleMode = StageScaleMode.NO_SCALE;  
  19.  
  20.    init();  
  21.   }  
  22.     
  23.   /**  
  24.    * 程序入口,所有程序都重寫init方法,在此添加自己的邏輯  
  25.    */  
  26.   protected function init():void  
  27.   {  
  28.    //在這里添加代碼  
  29.   }  
  30.  }  

 

 
圖3-1 在真機上的運行效果

AppBase類位于公用代碼庫library中,定義了舞臺的對齊方式和縮放模式。將scaleMode設(shè)置為StageScaleMode.NO_SCALE,舞臺尺寸即為屏幕的實際尺寸。StageAlign.TOP_LEFT表示舞臺內(nèi)容頂部居左對齊,這兩行代碼的作用是為了讓程序能夠適應(yīng)設(shè)備的屏幕尺寸,從而依據(jù)舞臺對象的stageWidth和stageHeight對界面上的元素進行布局和定位。比如在上一章中,我們讓棋盤在屏幕居中顯示的代碼為:

  1. grid_container.x = (stage.stageWidth - grid_container.width) / 2; 

類AppBase為后面所有的例子程序定義了統(tǒng)一的運行流程,將init方法作為程序初始化的入口,每個例子程序的主類會繼承AppBase類,并且重寫init方法。

使用這樣方式后,一些常用的代碼塊被提取出來放在基類中,被所有的子類共用,同時也提高了程序的靈活性。在后續(xù)的開發(fā)中,如果有需要,可以在AppBase基類中加入更多的方法,這樣所有的程序都可以共享。

責(zé)任編輯:閆佳明 來源: book.51cto.com
相關(guān)推薦

2013-05-14 11:01:34

AIR AndroidTouchEvent類

2013-05-14 10:16:35

Android開發(fā)主類Main

2013-05-14 10:13:52

Android開發(fā)主類Main

2013-05-14 10:23:31

Android開發(fā)主類Main

2013-05-14 09:50:44

Android開發(fā)Flash Build

2013-05-09 13:45:47

2013-05-03 15:17:59

Android開發(fā)Android SDK

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2013-05-14 10:41:31

2011-06-16 10:25:29

AndroidAIR

2013-05-14 09:57:37

2013-05-14 10:27:46

Android開發(fā)設(shè)置程序?qū)傩?/a>

2013-05-14 11:16:26

AIR Android旋轉(zhuǎn)手勢

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:37:10

AIR Android設(shè)置訪問權(quán)限

2013-05-14 10:56:45

AIR Android多點觸摸

2011-11-17 17:04:43

AdobeAIRAndroid

2013-05-14 10:05:10

Android開發(fā)游戲設(shè)計

2013-05-14 10:10:28

Android開發(fā)棋子類Grid

2012-03-09 13:26:53

點贊
收藏

51CTO技術(shù)棧公眾號