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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AIR Android:使用TouchEvent類(1)

處理觸摸事件

永和ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

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

使用TouchEvent類(1)

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

表3-1 TouchEvent類型

 

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

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

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

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

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

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

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

下面用一個TouchEventEx的例子演示TOUCH_BEGIN和TOUCH_END的用法。每當(dāng)一個或兩個手指觸摸屏幕時,程序會在觸摸點(diǎn)附近畫一個圓,并開始拖拽這個圓,直到TOUCH_END事件發(fā)生,拖拽結(jié)束。程序的主類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是一個基礎(chǔ)類,定義了程序的基本屬性  
  9.  public class Main extends AppBase  
  10.  {    
  11.   override protected function init():void  
  12.   {  
  13.    //判斷是否支持TouchEvent  
  14.    if ( Multitouch.supportsTouchEvents )  
  15.    {  
  16.     //設(shè)置交互模式為處理觸摸動作  
  17.     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;  
  18.     //監(jiān)聽舞臺的TOUCH_BEGIN和TOUCH_END事件  
  19.     stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);  
  20.     stage.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);  
  21.    }     
  22.   }  
  23.   //創(chuàng)建可視對象,并畫圓  
  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)處添加一個圓  
  37.    var box:Sprite = createCircle();  
  38.    addChild(box);  
  39.    //將元件移到觸摸點(diǎn)對應(yīng)的舞臺坐標(biāo)處  
  40.    box.x = e.stageX;  
  41.    box.y = e.stageY;     
  42.    //調(diào)用可視對象的startTouchDrag,開始拖拽元件  
  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. }

當(dāng)前題目:AIR Android:使用TouchEvent類(1)
文章轉(zhuǎn)載:http://m.5511xx.com/article/copogje.html