cocos2d JS touch屏幕點擊事件監聽 cc.EventListener.TOUCH

 
 1 var self = this;
 2 this.touchListener = cc.EventListener.create({
 3     event: cc.EventListener.TOUCH_ONE_BY_ONE,
 4 /*
 5 可選event類型列表:
 6 
 7 cc.EventListener.TOUCH_ONE_BY_ONE (單點觸摸)
 8 cc.EventListener.TOUCH_ALL_AT_ONCE (多點觸摸)
 9 cc.EventListener.KEYBOARD (鍵盤)
10 cc.EventListener.MOUSE (鼠標)
11 cc.EventListener.ACCELERATION (加速計)
12 cc.EventListener.CUSTOM (自定義)
13 
14 */
15     swallowTouches: true,  // 設置是否吞沒事件,在 onTouchBegan 方法返回 true 時吞掉事件,再也不向下傳遞。
16     onTouchBegan:function(touch, event)    //實現 onTouchBegan 事件處理回調函數
17     {
18         19         20 
21         return self.checkHit(touch.getLocation());  //傳遞座標
22     },
23 
24     onTouchMoved:function(touch, event)   //實現onTouchMoved事件處理回調函數, 觸摸移動時觸發
25     {
26         self.movePickedHitTile(touch.getLocation());
27         return true;
28     },
29 
30     onTouchEnded:function(touch, event)// 實現onTouchEnded事件處理回調函數
31     {
32         self.dropTile(touch.getLocation());
33         return true;
34     }
35 });
36 
37 cc.eventManager.addListener(this.touchListener, node);  // 添加監聽器到管理器
38 /*
39 這裏的cc.eventManager 是一個單例對象,可直接拿來使用。
40 經過調用 addListener 函數能夠將listener加入到管理器中。
41 須要注意的是第二個參數
42 若是傳入的是一個Node對象,則加入的是SceneGraphPriority(精靈以顯示優先級) 類型的listener
43 若是是一個數值類型的參數,則加入到的是FixedPriority 類型的listener。
44 */

 

 
onTouchBegan:
 1 checkHit:function(event)
 2 {
 3   var target = event.getCurrentTarget();  // 獲取事件所綁定的 target, 一般是cc.Node及其子類 
 4 
 5     // 獲取當前觸摸點相對於按鈕所在的座標
 6    var locationInNode = target.convertToNodeSpace(touch.getLocation());    
 7      var s = target.getContentSize();
 8     var rect = cc.rect(0, 0, s.width, s.height);
 9 
10     if (cc.rectContainsPoint(rect, locationInNode)) {       // 判斷觸摸點是否在按鈕範圍內
11       console.log("sprite began... x = " + locationInNode.x + ", y = " + locationInNode.y);
12       target.opacity = 180;
13        return true;
14       }
15     return false;
16 }

 



onTouchMoved:
1 movePickedHitTile:function(event)
2 {
3   var target = event.getCurrentTarget();
4    var delta = touch.getDelta();              //獲取事件數據: delta
5    target.x += delta.x;
6    target.y += delta.y;
7 },

 



onTouchEnded:
 1 dropTile:function(pt)
 2 {
 3 // this.showDiscardTip(false);
 4 //
 5 // this.pickedTile.setScale(1);
 6 //
 7 // //出牌
 8 // if(this.discardable(pt))
 9 // {
10 //     this.discard();
11 // }
12 // else
13 // {
14 //     if(this.hitTestTile(this.hitTile, pt))
15 //     {
16 //         var tileSize = mb.getTileSize(this.hitTile.pos, this.hitTile.state);
17 //         var ptWorld = this.hitTile.convertToWorldSpaceAR(cc.p(0, 0));
18 //         this.pickedTile.x = ptWorld.x;
19 //         this.pickedTile.y = ptWorld.y + tileSize.height / 3;
20 //     }
21 //     else
22 //     {
23 //         mb.TilePool.getInstance().restoreTile(this.pickedTile);
24 //         this.pickedTile = null;
25 //
26 //         this.hitTile.setVisible(true);
27 //         this.hitTile = null;
28 //     }
29 // }
30 
31 },
32  
相關文章
相關標籤/搜索