feat(ui): 为所有按钮添加全局点击音效
1. 重构按钮点击音效添加方式,通过重写Button原型的_onTouchEnded方法实现全局注入 2. 移除各业务组件中手动添加的按钮音效播放代码,统一音效播放逻辑
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-08-17 12:38:59
|
||||
*/
|
||||
import { Node } from "cc";
|
||||
import { Node, Button } from "cc";
|
||||
import { UICallbacks } from "../../../../extensions/oops-plugin-framework/assets/core/gui/layer/Defines";
|
||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||
import { AsyncQueue, NextFunction } from "../../../../extensions/oops-plugin-framework/assets/libs/collection/AsyncQueue";
|
||||
@@ -27,6 +27,19 @@ export class Initialize extends ecs.Entity {
|
||||
debugMode: boolean = false; // 是否启用调试模式
|
||||
protected init() {
|
||||
var queue: AsyncQueue = new AsyncQueue();
|
||||
|
||||
// --- 全局注入:为所有 Button 组件增加点击音效 ---
|
||||
const originalOnTouchEnded = Button.prototype["_onTouchEnded"];
|
||||
if (originalOnTouchEnded) {
|
||||
Button.prototype["_onTouchEnded"] = function(event) {
|
||||
if (this.interactable && this.node && this.node.activeInHierarchy) {
|
||||
oops.audio.playEffect("music/button");
|
||||
}
|
||||
originalOnTouchEnded.call(this, event);
|
||||
};
|
||||
}
|
||||
// ---------------------------------------------
|
||||
|
||||
// 加载自定义资
|
||||
this.loadCustom(queue);
|
||||
// 加载多语言包
|
||||
|
||||
Reference in New Issue
Block a user