cc.Node事件響應

缺氧何甘酸發表於2020-11-09

觸控事件

  1. 觸控事件型別: START,MOVED, ENDED(物體內), CANCEL(物體外):
  2. 監聽觸控事件: node.on(型別, callback, target(回掉函式的this),[useCapture]);

this.node.on(cc.Node.EventType.TOUCH_START, this.memberFunction, this); // if “this” is component and the “memberFunction” declared in CCClass.
node.on(cc.Node.EventType.TOUCH_START, callback, this);//觸控開始
node.on(cc.Node.EventType.TOUCH_MOVE, callback, this);//觸控移動
node.on(cc.Node.EventType.TOUCH_END, callback, this);//觸控結束,物體內部結束
node.on(cc.Node.EventType.TOUCH_CANCEL, callback, this);//觸控結束,物體外部結束
node.on(cc.Node.EventType.ANCHOR_CHANGED, callback);
node.on(cc.Node.EventType.COLOR_CHANGED, callback);

  1. 關閉觸控事件:node.off(型別, callback, target(回掉函式的this),[useCapture]);
  2. targetof( target):移除所有的註冊事件;(注意引數為this,不是this.node)
  3. 回掉函式的引數設定 function(t(cc. Touch))
  1. cc.Touch: getLocation返回觸控的位置 getDelta返回距離上次的偏移
  2. cc.Event: stopPropagationImmediate/ stop Propagation停止事件的傳遞
  3. 事件冒泡:觸事件支援節點樹的事件冒泡會從當前前天往上一層一層的向父節點傳送
  4. 完成物體跟隨手指觸控的案例

鍵盤事件

  1. cc.SystemEvent.on(type, function, target,useCapture);
    type:cc.SystemEvent.EventType. KEY_DOWN按鍵按下;
    cc.SystemEvent.EventType.UP按鍵彈起;
  2. cc. SystemEvent.on(type, function, target, useCapture):
  3. 鍵盤迴掉函式: function( event)
    event. key Code [cc KEY.left, …cc.KEY. xxxx]

自定義事件

  1. 監聽: this.node.on(“自定義事件名稱”, function, target, useCapture);
  2. 觸發:emit(“事件名稱,[detail]);只有自己能夠收到
  3. 冒泡派送: dispatch.Event(new cc.Event EventCustom(“name",是否冒泡傳遞));

相關文章