mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
4.3 KiB
4.3 KiB
类 BgmController
渲染进程类,游戏进程不能直接使用,继承自 ResourceController
- 实例成员
- 实例方法
- 实例事件
部分接口说明
interface BgmEmits {
preventDefault: () => void
}
事件监听参数,用于阻止默认行为,例如切歌、暂停、继续
stack
declare var stack: string[]
-
成员说明
播放栈,存储了之前播放的最多 10 个 bgm
redoStack
declare var redoStack: string[]
-
成员说明
恢复栈,undo 操作之后会存入这里,从而可以被 redo
now
declare var now: string | undefined
-
成员说明
当前正在播放的 bgm
transitionTime
declare var transitionTime: number
-
成员说明
切歌或者暂停等操作的音乐渐变时长
transitionCurve
declare var transitionCurve: TimingFn
-
成员说明
切歌或者暂停等操作的音乐音量渐变曲线
volume
declare var volume: number
-
成员说明
当前的音乐音量
disable
declare var disable: boolean
-
成员说明
是否关闭了音乐
playing
declare var playing: boolean
-
成员说明
是否正在播放音乐
add()
declare function add(uri: string, data: HTMLAudioElement): void
-
参数说明
id
: bgm 的uri
,由于 bgm 是一类资源,因此uri
为bgms.xxx
的形式data
: bgm 音频元素
-
方法说明
添加一个音乐
load()
declare function load(id: string): void
-
方法说明
预先加载一个音乐,从而在播放音乐的时候不会产生卡顿
changeTo()
declare function changeTo(id: string, when: number = -1, noStack: boolean = false): void
- 参考切换音乐
pause()
declare function pause(transition: boolean = true): void
-
方法说明
暂停音乐播放,继续播放时将会延续暂停的时刻
resume()
declare function resume(transition: boolean = true): void
-
方法说明
继续当前 bgm 的播放,从上一次暂停的时刻开始播放
play()
declare function play(id: string, when: number = 0, noStack: boolean = false): void
- 参考切换音乐
undo()
declare function undo(): void
-
方法说明
撤销当前播放,改为播放前一个 bgm
redo()
declare function redo(): void
-
方法说明
取消上一次的撤销,改为播放上一次撤销的 bgm
setTransition()
declare function setTransition(time?: number, curve?: TimingFn): void
-
方法说明
修改切歌的渐变信息,参考设置渐变参数
get()
declare function get(id: string): HTMLAudioElement
-
参数说明
id
: 音乐的名称,不是 uri
-
方法说明
根据音乐的名称获取到对应的音频元素
changeBgm 事件
interface BgmControllerEvent {
changeBgm: (ev: BgmEmits, id: string, before: string) => void
}
-
事件说明
当歌曲发生切换时触发,包括但不限于直接切歌、撤销、恢复。默认行为为切歌
pause 事件
interface BgmControllerEvent {
pause: (ev: BgmEmits, id: string) => void
}
-
事件说明
当音乐暂停时触发,默认行为为暂停
resume 事件
interface BgmControllerEvent {
resume: (ev: BgmEmits, id: string) => void
}
-
事件说明
当音乐继续播放时触发,默认行为为继续播放