更新首页homeScene涉及到的按钮,以及涉及到的所有分包或者活动的按钮 增加震动

This commit is contained in:
COMPUTER\EDY
2026-09-22 17:38:43 +08:00
parent b028946207
commit 2e0d1826f1
12 changed files with 229 additions and 10 deletions
@@ -0,0 +1,34 @@
const handledEvents = new WeakSet<cc.Event>();
/** 返回是否由首页统一处理;旧入口在其他场景仍可保留原有行为。 */
export function vibrateHomeButton(event?: cc.Event): boolean {
if (!event) return false;
const scene = cc.director.getScene();
if (!scene || scene.name !== "HomeScene") return false;
if (handledEvents.has(event)) return true;
handledEvents.add(event);
try {
cc.fx.GameTool.setVibrate("light", 1);
} catch (error) {
console.warn("HomeScene 按钮轻振动调用失败:", error);
}
return true;
}
/** 根节点捕获触摸,自动覆盖后来挂入首页的 Bundle 按钮。 */
export function onHomeButtonTouchEnd(event: cc.Event.EventTouch): void {
// 引擎可能复用事件对象,每次派发重新去重。
handledEvents.delete(event);
let target = event.target as cc.Node;
while (target) {
const button = target.getComponent(cc.Button);
if (button) {
if (button.interactable && button.enabledInHierarchy && (button as any)._pressed) {
vibrateHomeButton(event);
}
return;
}
if (target === event.currentTarget) return;
target = target.parent;
}
}
@@ -0,0 +1,10 @@
{
"ver": "1.1.0",
"uuid": "b9f1f6e3-d1e1-4a3d-a1a6-f3089fd502dd",
"importer": "typescript",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}