Files
slide_block/assets/scripts/AudioSettingsUI.ts

49 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

1970-01-01 08:27:52 +08:00
import { _decorator, Component, Node, Toggle } from 'cc';
import { AudioManager } from './AudioManager';
const { ccclass, property } = _decorator;
@ccclass('AudioSettingsUI')
export class AudioSettingsUI extends Component {
@property(Node)
panel: Node = null!; // 设置面板节点
@property(Toggle)
bgmToggle: Toggle = null!;
@property(Toggle)
sfxToggle: Toggle = null!;
onLoad() {
const am = AudioManager.instance;
// 初始化 Toggle 状态
this.bgmToggle.isChecked = am.bgmEnabled;
this.sfxToggle.isChecked = am.sfxEnabled;
// Toggle 监听
this.bgmToggle.node.on('toggle', this.onBgmToggleChanged, this);
this.sfxToggle.node.on('toggle', this.onSfxToggleChanged, this);
// 面板默认隐藏
this.panel.active = false;
}
/** 打开设置面板 */
openPanel() {
this.panel.active = true;
}
/** 关闭设置面板 */
closePanel() {
this.panel.active = false;
}
private onBgmToggleChanged(toggle: Toggle) {
AudioManager.instance.setBGMEnabled(toggle.isChecked);
}
private onSfxToggleChanged(toggle: Toggle) {
AudioManager.instance.setSFXEnabled(toggle.isChecked);
}
}