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

AIR Android:使用TouchEvent類(1)

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

處理觸摸事件

和處理其他事件一樣,可以對舞臺上的元件監聽觸摸事件,然后編寫事件處理函數。觸摸事件有哪些類型?如何使用?它們和鼠標事件又有什么區別?學完本節大家便會得到答案。

使用TouchEvent類(1)

所有的觸摸動作都將產生TouchEvent類型的事件對象。TouchEvent類位于flash.events包中,所有的Touch事件類型都被定義為它的靜態常量,如表3-1所示。

表3-1 TouchEvent類型

 

在TouchEvent類中,除了父類Event的屬性和方法外,還定義了幾個和觸摸動作相關的實例屬性,說明如下。

stageX和stageY:表示對應的觸摸點在屏幕上的全局坐標。

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

sizeX和sizeY:分別對應觸摸點接觸區域的寬和高。

touchPointID:觸摸點的唯一標識,是整型數據。

在處理觸摸事件時,touchPointID是經常使用的一個參數,用來標識觸摸事件。觸摸操作可能有多個觸摸點,比如兩個手指同時觸摸屏幕,TOUCH_BEGIN事件將發生兩次,產生的TouchEvent分別對應不同位置的觸摸點。為了區分觸摸點,AIR運行時會為每個觸摸點分配一個唯一的標識,即touchPointID。

當TOUCH_BEGIN事件第一次發生時,AIR運行時會從0開始分配touchPointID給每個TouchEvent,直到數目超出了系統所能支持的最大觸摸點數,超出范圍的觸摸事件將被忽略。Android設備一般只支持兩個觸摸點,也就是說TouchEvent對象的touchPointID的值只可能是0或1。每個觸摸動作結束時,對應的touchPointID被回收,供新的觸摸點使用。

下面用一個TouchEventEx的例子演示TOUCH_BEGIN和TOUCH_END的用法。每當一個或兩個手指觸摸屏幕時,程序會在觸摸點附近畫一個圓,并開始拖拽這個圓,直到TOUCH_END事件發生,拖拽結束。程序的主類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是一個基礎類,定義了程序的基本屬性  
  9.  public class Main extends AppBase  
  10.  {    
  11.   override protected function init():void  
  12.   {  
  13.    //判斷是否支持TouchEvent  
  14.    if ( Multitouch.supportsTouchEvents )  
  15.    {  
  16.     //設置交互模式為處理觸摸動作  
  17.     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;  
  18.     //監聽舞臺的TOUCH_BEGIN和TOUCH_END事件  
  19.     stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);  
  20.     stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);  
  21.    }     
  22.   }  
  23.   //創建可視對象,并畫圓  
  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事件處理函數  
  34.   private function onTouchBegin(e:TouchEvent):void  
  35.   {  
  36.    //在觸摸點處添加一個圓  
  37.    var box:Sprite = createCircle();  
  38.    addChild(box);  
  39.    //將元件移到觸摸點對應的舞臺坐標處  
  40.    box.x = e.stageX;  
  41.    box.y = e.stageY;     
  42.    //調用可視對象的startTouchDrag,開始拖拽元件  
  43.    box.startTouchDrag(e.touchPointID);  
  44.   }  
  45.   //TOUCH_END事件處理函數  
  46.   private function onTouchEnd(e:TouchEvent):void  
  47.   {  
  48.    //調用stopTouchDrag結束拖拽  
  49.    e.target.stopTouchDrag(e.touchPointID);  
  50.   }    
  51.  }   
  52. }
責任編輯:閆佳明 來源: book.51cto.com
相關推薦

2013-05-14 11:04:58

AIR AndroidTouchEvent類

2013-05-14 10:13:52

Android開發主類Main

2013-05-14 10:23:31

Android開發主類Main

2013-05-14 10:16:35

Android開發主類Main

2013-05-14 09:50:44

Android開發Flash Build

2013-05-09 13:45:47

2013-05-03 15:17:59

Android開發Android SDK

2011-06-16 10:25:29

AndroidAIR

2013-05-14 11:18:24

AIR AndroidSwipe手勢

2013-05-14 10:41:31

2013-05-14 09:57:37

2013-05-14 10:56:45

AIR Android多點觸摸

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文件

2011-11-17 17:04:43

AdobeAIRAndroid

2013-05-14 10:05:10

Android開發游戲設計

2013-05-14 10:10:28

Android開發棋子類Grid

2012-03-09 13:26:53

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 蜜桃黄网 | 亚洲国产一区二区三区在线观看 | 国产精品激情小视频 | 日韩精品一区二区三区四区 | 97视频成人| 一本一道久久a久久精品蜜桃 | 亚洲精品一区av在线播放 | 国产精品视频一区二区三区 | 欧美视频一区 | 精品欧美一区二区三区精品久久 | 亚洲综合视频一区 | 网站黄色在线 | 在线成人一区 | 午夜a区 | 午夜精品一区二区三区在线视频 | 中国一级特黄毛片大片 | 亚洲欧美日韩国产 | 欧美xxxx色视频在线观看免费 | 欧美精品在线播放 | 色婷婷综合久久久中字幕精品久久 | 伊人伊人 | 成人性视频免费网站 | 91一区二区三区在线观看 | 在线中文字幕国产 | 亚洲精品久 | 精品一区二区三区四区 | 国产三级精品三级在线观看四季网 | 日韩在线中文字幕 | 一区中文字幕 | 免费在线观看毛片 | 毛片免费视频 | 日韩一区二区三区视频在线播放 | 91小视频在线| www.久久国产精品 | 最新免费黄色网址 | 不卡的av在线 | 亚洲午夜精品一区二区三区他趣 | av入口| 国产视频一区二区在线观看 | 看片91| 亚洲欧美综合 |