更新首页homeScene涉及到的按钮,以及涉及到的所有分包或者活动的按钮 增加震动
This commit is contained in:
@@ -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": {}
|
||||
}
|
||||
Reference in New Issue
Block a user