85 lines
2.5 KiB
JavaScript
85 lines
2.5 KiB
JavaScript
export class SoundManager {
|
|
constructor(soundSet = null) {
|
|
this.soundSet = null;
|
|
this.data = new Map();
|
|
this.soundSet = soundSet;
|
|
}
|
|
setSoundSet(soundSet) {
|
|
this.soundSet = soundSet;
|
|
}
|
|
handleSound(type, data = null) {
|
|
switch (type) {
|
|
case 'edit':
|
|
this.handleEditSound(data);
|
|
break;
|
|
case 'slider':
|
|
this.handleSliderSound(data);
|
|
break;
|
|
case 'selector':
|
|
this.handleSelectorSound(data);
|
|
break;
|
|
case 'checkbox':
|
|
this.handleCheckboxSound(data);
|
|
break;
|
|
case 'focus':
|
|
this.handleFocusSound();
|
|
break;
|
|
case 'choose':
|
|
this.handleChooseSound();
|
|
break;
|
|
case 'open':
|
|
this.handleOpenSound();
|
|
break;
|
|
case 'close':
|
|
this.handleCloseSound();
|
|
break;
|
|
default:
|
|
return;
|
|
break;
|
|
}
|
|
}
|
|
handleEditSound(data) {
|
|
const prevData = this.data.get('edit') || '';
|
|
if (data.length <= prevData.length) {
|
|
this.soundSet.delete && this.soundSet.delete.play();
|
|
}
|
|
else {
|
|
this.soundSet.char && this.soundSet.char.play();
|
|
}
|
|
this.data.set('edit', data);
|
|
}
|
|
handleSelectorSound(data) {
|
|
this.soundSet.scroller && this.soundSet.scroller.play();
|
|
}
|
|
handleSliderSound(data) {
|
|
const prevData = this.data.get('slider');
|
|
if (data < prevData) {
|
|
this.soundSet.sliderLeft && this.soundSet.sliderLeft.play();
|
|
}
|
|
else {
|
|
this.soundSet.sliderRight && this.soundSet.sliderRight.play();
|
|
}
|
|
this.data.set('slider', data);
|
|
}
|
|
handleFocusSound() {
|
|
this.soundSet.move && this.soundSet.move.play();
|
|
}
|
|
handleOpenSound() {
|
|
this.soundSet.open && this.soundSet.open.play();
|
|
}
|
|
handleCloseSound() {
|
|
this.soundSet.close && this.soundSet.close.play();
|
|
}
|
|
handleChooseSound() {
|
|
this.soundSet.choose && this.soundSet.choose.play();
|
|
}
|
|
handleCheckboxSound(data) {
|
|
if (data === true) {
|
|
this.soundSet.checked && this.soundSet.checked.play();
|
|
}
|
|
else {
|
|
this.soundSet.unchecked && this.soundSet.unchecked.play();
|
|
}
|
|
}
|
|
}
|