进度条
进度条本身就是个事件,其基础逻辑和 事件 相同,由于进度条需要用户进行交互,所以增加下列函数。
点击
点击进度条时运行的函数。
运行函数 run
一般情况下,事件点击时会触发 run 函数,从而进入 目标场景, 进度条需要处理点击事件,所以单独设置了 click 函数,
仅当挂载了 run 且进度条 progress 为1时,触发运行函数。
js
export default {
...其他参数(不用管),
/**
* 点击事件
*
* @function click
* @param {object} save 存档 - 故事存档
* @param {object} story 故事 - 故事对象,可进行提示,弹窗等对故事进行修改操作
* @param {object} loader 加载器 - 事件加载器的 Vue 节点
* @return {Promise<void>}
*/
async click(save, story, loader) {
console.log('存档:\n', save)
console.log('故事:\n', story)
// 点击时进度条进度 +10%
this.progress += 0.1
}
}流逝速度 leakSpeed
即进度条主体视频的播放速率
| 行为 | 数值 |
|---|---|
| 常速播放 | 1000 |
| 不播放 | 0 |
| 常速倒放 | -1000 |
注意:当本值为负时,模拟进度条自动减少的效果,受限于浏览器无法倒放视频,进度条视频需要上传倒放的版本。
按下
鼠标,触摸,手柄按下时触发的函数, 由于浏览器无力处理高频视频重定位, 此功能被简化为在持续按下时将以 100ms 的频率触发。
js
export default {
...其他参数(不用管),
/**
* 按下事件
*
* @function press
* @param {object} save 存档 - 故事存档
* @param {object} story 故事 - 故事对象,可进行提示,弹窗等对故事进行修改操作
* @param {object} loader 加载器 - 事件加载器的 Vue 节点
* @return {Promise<void>}
*/
async press(save, story, loader) {
console.log('存档:\n', save)
console.log('故事:\n', story)
// 点击时进度条进度 +10%
this.progress += 0.1
}
}抬起
按下结束时循行的函数。
js
export default {
...其他参数(不用管),
/**
* 抬起事件
*
* @function pressend
* @param {object} save 存档 - 故事存档
* @param {object} story 故事 - 故事对象,可进行提示,弹窗等对故事进行修改操作
* @param {object} loader 加载器 - 事件加载器的 Vue 节点
* @return {Promise<void>}
*/
async pressend(save, story, loader) {
console.log('存档:\n', save)
console.log('故事:\n', story)
// 进度小于1时给用户加油
if (this.pregress < 1)
story.message = `加油~`
// 您可在这里修改存档或做一些其他的事
}
}