47 lines
1.5 KiB
TypeScript
Raw Normal View History

2025-02-11 13:51:02 +08:00
import { TreeData } from "../../views/devtools/data";
import { ShowCode } from "./types";
declare const cc: any;
function getKey(code: ShowCode): string {
const map = {};
map[ShowCode.TouchStart] = cc.Node.EventType.TOUCH_START;
map[ShowCode.TouchMove] = cc.Node.EventType.TOUCH_MOVE;
map[ShowCode.TouchEnd] = cc.Node.EventType.TOUCH_END;
map[ShowCode.TouchCancel] = cc.Node.EventType.TOUCH_CANCEL;
map[ShowCode.ButtonClick] = cc.Button.EventType.CLICK;
const key = map[code];
return key || "";
}
export function getCallbacks(node: any, code: ShowCode) {
const key = getKey(code);
if (!key) {
return [];
}
if (!node._eventProcessor.bubblingTarget) {
return [];
}
const tables = node._eventProcessor.bubblingTarget._callbackTable[key];
if (!tables) {
return [];
}
const funArray: Function[] = tables.callbackInfos;
if (!funArray || funArray.length === 0) {
return [];
}
if (funArray.length > 1) {
console.warn(`多个事件回调函数${funArray.length}`);
}
return funArray.map((fun) => {
// @ts-ignore
return fun.callback;
});
}
export function calcCodeHint(node: any, data: TreeData) {
data.codeTouchStart = getCallbacks(node, ShowCode.TouchStart).length;
data.codeTouchMove = getCallbacks(node, ShowCode.TouchMove).length;
data.codeTouchEnd = getCallbacks(node, ShowCode.TouchEnd).length;
data.codeTouchCancel = getCallbacks(node, ShowCode.TouchCancel).length;
data.codeButtonClick = getCallbacks(node, ShowCode.ButtonClick).length;
}