39 lines
1,007 B
TypeScript
39 lines
1,007 B
TypeScript
import {sendToWorkadventure} from "../IframeApiContribution";
|
|
import type {LoadSoundEvent} from "../../Events/LoadSoundEvent";
|
|
import type {PlaySoundEvent} from "../../Events/PlaySoundEvent";
|
|
import type {StopSoundEvent} from "../../Events/StopSoundEvent";
|
|
import SoundConfig = Phaser.Types.Sound.SoundConfig;
|
|
|
|
export class Sound {
|
|
constructor(private url: string) {
|
|
sendToWorkadventure({
|
|
"type": 'loadSound',
|
|
"data": {
|
|
url: this.url,
|
|
} as LoadSoundEvent
|
|
|
|
});
|
|
}
|
|
|
|
public play(config: SoundConfig) {
|
|
sendToWorkadventure({
|
|
"type": 'playSound',
|
|
"data": {
|
|
url: this.url,
|
|
config
|
|
} as PlaySoundEvent
|
|
|
|
});
|
|
return this.url;
|
|
}
|
|
public stop() {
|
|
sendToWorkadventure({
|
|
"type": 'stopSound',
|
|
"data": {
|
|
url: this.url,
|
|
} as StopSoundEvent
|
|
|
|
});
|
|
return this.url;
|
|
}
|
|
}
|