Cocos2d JS 事件處理機制

2021-07-11 04:48:24 字數 1353 閱讀 9789

事件處理機制中的三個角色

在cocos2d-js引擎時間處理機制中也有這3個角色。

1.事件

事件類是cc.event,它的類圖如圖8-1所示,它的子類有cc.eventtouch(觸控事件)、cc.eventmouse(滑鼠事件)、cc.eventcustom(自定義)、cc.eventkeyboard(鍵盤事件)和cc.eventacceleration(加速度事件)

2.事件源

事件源是cocos2d-js中的精靈、層、選單等節點物件。

3.事件處理者

cocos2d-js中的事件處理者都是事件***cc.eventlistener。它包括幾種不同型別的***。

(1)cc.eventlistener.acceleration 加速度事件***

(2)cc.eventlistener.custom 自定義事件***

(3)cc.eventlistener.keyboard鍵盤事件***

(4)cc.eventlistener.mouse滑鼠事件***

(5)cc.eventlistener.touch_all_at_once 多點觸控事件***

(6)cc.eventlistener.touch_one_by_one 單點觸控事件***

4.事件管理器

cocos2d-js提供乙個事件管理器cc.eventmanager負責管理這種關係,具體地說,事件管理器負責註冊***、登出***和事件分發。

cc.eventmanager類中註冊事件***的函式如下:、

addlistener(listener,nodeorpriority)

第乙個引數listener是要註冊的事件***物件。第二個引數nodeorpriority可以是乙個node物件 或乙個數值。如果傳入的是node物件。則按照精靈等node物件的顯示優先順序作為時間優先順序。如果傳入的是數值,則按照指定的級別作為事件優先順序,事件優先順序決定事件響應的優先級別,值越小,優先順序越高。

當不再進行事件響應的時候,應該登出事件***。主要的登出函式如下:

(1)removelistener(listener)登出指定的事件***

(2)removecustomlisteners(customeventname)登出自定義事件***

(3)removelisteners(listenertype,recursive)登出所有特點型別的事件***,recursive引數表示是否遞迴登出

(4)removealleventlisteners()登出所有事件***,需要注意的是,使用該函式之後,選單也不能響應事件了,因為他也需要接受觸控事件。

cocos2d JS 滑鼠響應事件

對於pc和超級本,新增滑鼠事件的的處理,可以加強使用者的體驗,其處理邏輯與觸控事件基本一樣,多了一些滑鼠特有的事件響應 如滾輪事件 onmousescroll cc.eventmanager.addlistener onmouseup function event onmousedown funct...

Cocos2d JS螢幕適配

有終端開發經驗的讀者應該對螢幕適配問題深感痛惡,因為這個世界實在有太多型別的手機和平板了,各種尺寸 首先,我們來認識三個術語 cocos2d js為我們提供的螢幕適配方法有如下幾種 1.自適應拉伸cc.resolutionpolicy.exact fit 該方案下,遊戲剛好鋪滿整個螢幕,但畫面的比例...

cocos2d js環境搭建

一 環境配置 1.安裝python2.7x版本 二 建立工程 mac版本 命令 setup.py 配置當前cocos2dx mac上的環境變數 windows版本 命令 cocos new 工程名 p 包名 l js cpp android d 工程儲存路徑 三 了解引擎或者工程的結構目錄 配置好基...