Skip to content

故事

在脚本中,我们可以通过函数拿到故事实例,从而对故事进行精细控制。

基础信息

故事实例中记录着当前故事发展的所有基础信息,开发者直接修改这些基础信息来进行精细化控制。

键值名称说明可控
story故事当前故事
save存档当前故事的存档
theme主题当前故事的主题
scene场景当前场景
message信息通过赋值弹出信息提示
media媒体当前载入的剧情媒体
mediaDom媒体dom正在播放的媒体dom
paused暂停是否暂停播放
valume音量当前媒体的音量
tip提示在此处赋值媒体可显示提示
played播放完成剧情媒体是否完成播放
duration媒体时长当前剧情媒体的时长
currentTime播放进度当前播放进度
playbackRate播放速度当前播放速度
fullscreen全屏是否全屏
fnPanel子页面当前子页面

例如在按钮点击时弹出提示

js
export default {
    ...其他参数(不用管),
    /**
     * 事件运行
     *
     * @param {object} save  存档 - 故事存档
     * @param {object} story  故事 - 故事对象,可进行提示,弹窗等对故事进行修改操作
     * @param {object} loader 加载器 - 事件加载器的 Vue 节点
     * @return {Promise<Place|yinObject|undefined>}
     */
    run(save, story, loader) {
        story.message = '你好啊'

        /**
         * message
         * @typedef {object|string} message
         * @property {string} content - 信息内容(支持富文本)(不支持内容渲染)
         * @property {string} enterAnimation - 动画类 例如:animate__fadeInRight
         * @property {object} style - 信息样式
         * @property {number} duration - 显示时长
         */
        story.message = {
            content: '<p>你好啊</p>',
            enterAnimation: 'animate__fadeInRight',
            style: {
                // 弹出改到左侧顶部
                left:'21px'
            },
            duration: 2000
        }
    }
}

功能

还可以通过一些功能控制故事表现。

事件名称说明
play播放
pause暂停
speedCtrl切换播放速度几个速度轮询切换
speedUp全速播放3倍速
speedUpEnd退出全速播放
playToStart跳至场景开头
playToEnd跳至场景结尾跳至剧情完成播放的时间点
fullscreenCtrl全屏切换
selectSave切换存档跳至存档选择页面
logout登出

例如在按钮点击时暂停播放并调整播放进度

js
export default {
    ...其他参数(不用管),
    /**
     * 事件运行
     *
     * @param {object} save  存档 - 故事存档
     * @param {object} story  故事 - 故事对象,可进行提示,弹窗等对故事进行修改操作
     * @param {object} loader 加载器 - 事件加载器的 Vue 节点
     * @return {Promise<Place|yinObject|undefined>}
     */
    run(save, story, loader) {
        story.pause()
        // 媒体 dom 中 currentTime 的单位是 秒
        story.mediaDom.currentTime = 5

        story.message = '选择错误!\n时间停滞,轮回开始~~'
    }
}