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

AIR Android:使用TouchEvent類(lèi)(1)

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

處理觸摸事件

和處理其他事件一樣,可以對(duì)舞臺(tái)上的元件監(jiān)聽(tīng)觸摸事件,然后編寫(xiě)事件處理函數(shù)。觸摸事件有哪些類(lèi)型?如何使用?它們和鼠標(biāo)事件又有什么區(qū)別?學(xué)完本節(jié)大家便會(huì)得到答案。

使用TouchEvent類(lèi)(1)

所有的觸摸動(dòng)作都將產(chǎn)生TouchEvent類(lèi)型的事件對(duì)象。TouchEvent類(lèi)位于flash.events包中,所有的Touch事件類(lèi)型都被定義為它的靜態(tài)常量,如表3-1所示。

表3-1 TouchEvent類(lèi)型

 

在TouchEvent類(lèi)中,除了父類(lèi)Event的屬性和方法外,還定義了幾個(gè)和觸摸動(dòng)作相關(guān)的實(shí)例屬性,說(shuō)明如下。

stageX和stageY:表示對(duì)應(yīng)的觸摸點(diǎn)在屏幕上的全局坐標(biāo)。

pressure:取值為0.0~1.0,表示觸摸點(diǎn)處的屏幕壓力。如果設(shè)備不支持這個(gè)功能,那么其值將總為1.0。

sizeX和sizeY:分別對(duì)應(yīng)觸摸點(diǎn)接觸區(qū)域的寬和高。

touchPointID:觸摸點(diǎn)的唯一標(biāo)識(shí),是整型數(shù)據(jù)。

在處理觸摸事件時(shí),touchPointID是經(jīng)常使用的一個(gè)參數(shù),用來(lái)標(biāo)識(shí)觸摸事件。觸摸操作可能有多個(gè)觸摸點(diǎn),比如兩個(gè)手指同時(shí)觸摸屏幕,TOUCH_BEGIN事件將發(fā)生兩次,產(chǎn)生的TouchEvent分別對(duì)應(yīng)不同位置的觸摸點(diǎn)。為了區(qū)分觸摸點(diǎn),AIR運(yùn)行時(shí)會(huì)為每個(gè)觸摸點(diǎn)分配一個(gè)唯一的標(biāo)識(shí),即touchPointID。

當(dāng)TOUCH_BEGIN事件第一次發(fā)生時(shí),AIR運(yùn)行時(shí)會(huì)從0開(kāi)始分配touchPointID給每個(gè)TouchEvent,直到數(shù)目超出了系統(tǒng)所能支持的最大觸摸點(diǎn)數(shù),超出范圍的觸摸事件將被忽略。Android設(shè)備一般只支持兩個(gè)觸摸點(diǎn),也就是說(shuō)TouchEvent對(duì)象的touchPointID的值只可能是0或1。每個(gè)觸摸動(dòng)作結(jié)束時(shí),對(duì)應(yīng)的touchPointID被回收,供新的觸摸點(diǎn)使用。

下面用一個(gè)TouchEventEx的例子演示TOUCH_BEGIN和TOUCH_END的用法。每當(dāng)一個(gè)或兩個(gè)手指觸摸屏幕時(shí),程序會(huì)在觸摸點(diǎn)附近畫(huà)一個(gè)圓,并開(kāi)始拖拽這個(gè)圓,直到TOUCH_END事件發(fā)生,拖拽結(jié)束。程序的主類(lèi)Main.as的代碼如下:

  1. package  
  2. {  
  3.  import flash.display.Graphics;  
  4.  import flash.display.Sprite;  
  5.  import flash.events.TouchEvent;  
  6.  import flash.ui.Multitouch;  
  7.  import flash.ui.MultitouchInputMode;  
  8.  //AppBase是一個(gè)基礎(chǔ)類(lèi),定義了程序的基本屬性  
  9.  public class Main extends AppBase  
  10.  {    
  11.   override protected function init():void  
  12.   {  
  13.    //判斷是否支持TouchEvent  
  14.    if ( Multitouch.supportsTouchEvents )  
  15.    {  
  16.     //設(shè)置交互模式為處理觸摸動(dòng)作  
  17.     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;  
  18.     //監(jiān)聽(tīng)舞臺(tái)的TOUCH_BEGIN和TOUCH_END事件  
  19.     stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);  
  20.     stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);  
  21.    }     
  22.   }  
  23.   //創(chuàng)建可視對(duì)象,并畫(huà)圓  
  24.   private function createCircle():Sprite  
  25.   {  
  26.    var box:Sprite = new Sprite();  
  27.    var g:Graphics = box.graphics;  
  28.    g.beginFill(0x808888);  
  29.    g.drawCircle(0, 0, 30);  
  30.    g.endFill();  
  31.    return box;  
  32.   }    
  33.   //TOUCH_BEGIN事件處理函數(shù)  
  34.   private function onTouchBegin(e:TouchEvent):void  
  35.   {  
  36.    //在觸摸點(diǎn)處添加一個(gè)圓  
  37.    var box:Sprite = createCircle();  
  38.    addChild(box);  
  39.    //將元件移到觸摸點(diǎn)對(duì)應(yīng)的舞臺(tái)坐標(biāo)處  
  40.    box.x = e.stageX;  
  41.    box.y = e.stageY;     
  42.    //調(diào)用可視對(duì)象的startTouchDrag,開(kāi)始拖拽元件  
  43.    box.startTouchDrag(e.touchPointID);  
  44.   }  
  45.   //TOUCH_END事件處理函數(shù)  
  46.   private function onTouchEnd(e:TouchEvent):void  
  47.   {  
  48.    //調(diào)用stopTouchDrag結(jié)束拖拽  
  49.    e.target.stopTouchDrag(e.touchPointID);  
  50.   }    
  51.  }   
  52. }
責(zé)任編輯:閆佳明 來(lái)源: book.51cto.com
相關(guān)推薦

2013-05-14 11:04:58

AIR AndroidTouchEvent類(lèi)

2013-05-14 10:13:52

Android開(kāi)發(fā)主類(lèi)Main

2013-05-14 10:16:35

Android開(kāi)發(fā)主類(lèi)Main

2013-05-14 10:23:31

Android開(kāi)發(fā)主類(lèi)Main

2013-05-14 09:50:44

Android開(kāi)發(fā)Flash Build

2013-05-09 13:45:47

2013-05-03 15:17:59

Android開(kāi)發(fā)Android SDK

2013-05-14 11:18:24

AIR AndroidSwipe手勢(shì)

2011-06-16 10:25:29

AndroidAIR

2013-05-14 10:41:31

2013-05-14 09:57:37

2013-05-14 11:16:26

AIR Android旋轉(zhuǎn)手勢(shì)

2013-05-14 10:27:46

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

2013-05-14 10:39:27

AIR Android打包APK文件

2013-05-14 10:37:10

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

2013-05-14 10:56:45

AIR Android多點(diǎn)觸摸

2011-11-17 17:04:43

AdobeAIRAndroid

2013-05-14 10:05:10

Android開(kāi)發(fā)游戲設(shè)計(jì)

2013-05-14 10:10:28

Android開(kāi)發(fā)棋子類(lèi)Grid

2012-03-09 13:26:53

點(diǎn)贊
收藏

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