事件监听相关方法
chimee 作为 video 的映射,自然也是可以监听 video 上的事件。包括 video 上的所有 video 事件和 dom 事件。我们提供了以下几个接口。
on
- 含义:绑定事件监听
- 别名:addEventListener
- 参数:
- key
- 类型:
string
- 含义:事件名称
- 类型:
- fn
- 类型:
Function
- 含义:处理函数
- 类型:
- options
- 类型:
Object
- 含义:可以穿入一些事件相关的属性
- 备注:可选参数
- target
- 类型:'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
- 含义:标明事件需要绑定的目标对象。
- 默认:会根据事件名智能判断
- stage
- 类型:'before' | 'after' | 'main' | '_'
- 含义:标明事件监听的阶段
- 默认:会根据事件名智能判断
- target
- 类型:
- key
利用 on 可以直接监听任何发生在 video 上的事件。但是 video 只是 chimee 上的一部分。chimes 分为 wrapper, container, video 三个层级。其中要监听特定的事件,请按照如下建议配置参数- 监听内核事件, target 为 kernel- 监听 container 事件, target 为 container- 监听 wrapper 事件,target 为 wrapper- 监听插件间自定义事件,target 为 plugin- 监听全凭相关事件,target 为 'esFullscreen' (不建议配置,代码会自动分析)- 监听 video 上的 dom 事件,如 click ,target 为 'video-dom' (不建议配置,代码会自动分析)- 监听 video 自身事件,如 play,target 为 video (不建议配置,代码会自动分析)如果要监听 wrapper 上的事件,请添加前缀 w_如果要监听 container 上的事件,请添加前缀 c_要理解 chimee 的事件体系,请阅读《为什么要将 Chimee 设计成一个组件化框架?》中的事件体系部分
off
- 含义:解绑事件
- 别名:removeEventListener
- 参数:
- key
- 类型:
string
- 含义:事件名称
- 类型:
- fn
- 类型:
Function
- 含义:处理函数
- 类型:
- options
- 类型:
Object
- 含义:可以穿入一些事件相关的属性
- 备注:可选参数
- target
- 类型:'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
- 含义:标明事件需要绑定的目标对象。
- 默认:会根据事件名智能判断
- stage
- 类型:'before' | 'after' | 'main' | '_'
- 含义:标明事件监听的阶段
- 默认:会根据事件名智能判断
- target
- 类型:
- key
once
- 含义:绑定一次性事件监听
- 参数:
- key
- 类型:
string
- 含义:事件名称
- 类型:
- fn
- 类型:
Function
- 含义:处理函数
- 类型:
- options
- 类型:
Object
- 含义:可以穿入一些事件相关的属性
- 备注:可选参数
- target
- 类型:'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
- 含义:标明事件需要绑定的目标对象。
- 默认:会根据事件名智能判断
- stage
- 类型:'before' | 'after' | 'main' | '_'
- 含义:标明事件监听的阶段
- 默认:会根据事件名智能判断
- target
- 类型:
- key
emit
- 含义:触发一次由异步函数处理的事件
- 参数:
- key
- 类型:
string | { name: string, target: string }
- 含义:事件名称
- 备注:target 为 'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
- 类型:
- 其余自定义参数
一般用于触发如 play, pause 等行为,和直接调用play
、pause
等方法一致。也可以利用此和插件进行沟通。
- key
emitSync
- 含义:触发一次由同步函数处理的事件
- 参数:
- key
- 类型:
string
- 含义:事件名称
- 类型:
- 其余自定义参数
一般用于触发 dom 事件。
- key
registerEvents
- 注册事件名字
- 参数
- options
- 类型: object
- name
- 类型:
string
- 含义:注册后的事件名称
- 类型:
- target
- 类型:
string
- 含义:注册事件的目标
用于注册新事件,现阶段仅支持在 kernel 上注册。
- 类型:
- name
- 类型: object
- options
例如,我们像监听 kernel 上的 test 事件。可以这么做
import Chimee from 'chimee'
Chimee.registerEvents({
name: 'test',
target: 'kernel',
});