事件监听相关方法

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' | '_'
          • 含义:标明事件监听的阶段
          • 默认:会根据事件名智能判断
利用 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' | '_'
          • 含义:标明事件监听的阶段
          • 默认:会根据事件名智能判断

once

  • 含义:绑定一次性事件监听
  • 参数:
    • key
      • 类型:string
      • 含义:事件名称
    • fn
      • 类型:Function
      • 含义:处理函数
    • options
      • 类型:Object
      • 含义:可以穿入一些事件相关的属性
      • 备注:可选参数
        • target
          • 类型:'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
          • 含义:标明事件需要绑定的目标对象。
          • 默认:会根据事件名智能判断
        • stage
          • 类型:'before' | 'after' | 'main' | '_'
          • 含义:标明事件监听的阶段
          • 默认:会根据事件名智能判断

emit

  • 含义:触发一次由异步函数处理的事件
  • 参数:
    • key
      • 类型:string | { name: string, target: string }
      • 含义:事件名称
      • 备注:target 为 'kernel' | 'container' | 'wrapper' | 'video' | 'video-dom' | 'plugin' | 'esFullscreen'
    • 其余自定义参数
      一般用于触发如 play, pause 等行为,和直接调用playpause等方法一致。也可以利用此和插件进行沟通。

emitSync

  • 含义:触发一次由同步函数处理的事件
  • 参数:
    • key
      • 类型:string
      • 含义:事件名称
    • 其余自定义参数
      一般用于触发 dom 事件。

registerEvents

  • 注册事件名字
  • 参数
    • options
      • 类型: object
        • name
          • 类型: string
          • 含义:注册后的事件名称
        • target
          • 类型: string
          • 含义:注册事件的目标
            用于注册新事件,现阶段仅支持在 kernel 上注册。

例如,我们像监听 kernel 上的 test 事件。可以这么做

  1. import Chimee from 'chimee'
  2. Chimee.registerEvents({
  3. name: 'test',
  4. target: 'kernel',
  5. });