事件處理機制中的三個角色
在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 工程儲存路徑 三 了解引擎或者工程的結構目錄 配置好基...