溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中TouchEvent類如何使用

發(fā)布時(shí)間:2021-06-26 15:48:09 來源:億速云 閱讀:160 作者:Leah 欄目:移動開發(fā)

今天就跟大家聊聊有關(guān) Android中TouchEvent類如何使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

使用TouchEvent類(2)

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

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

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

stopTouchDrag(touchPointID:int):void

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

因?yàn)槟M器不支持觸摸事件,所以使用觸摸事件的程序必須在真機(jī)上運(yùn)行才能看到效果,如圖3-1所示。

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

package  {   import flash.display.Sprite;   import flash.display.StageAlign;   import flash.display.StageScaleMode;   import flash.events.Event;      /**    * 程序基類,定義了舞臺屬性    */   public class AppBase extends Sprite   {    public function AppBase():void  {   //定義舞臺的對齊方式和縮放模式   stage.align = StageAlign.TOP_LEFT;   stage.scaleMode = StageScaleMode.NO_SCALE;    init();  }    /**   * 程序入口,所有程序都重寫init方法,在此添加自己的邏輯   */  protected function init():void  {   //在這里添加代碼  }   }  }


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

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

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

看完上述內(nèi)容,你們對 Android中TouchEvent類如何使用有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI