UNPKG

rc-danmuku

Version:
80 lines (79 loc) 2.4 kB
import React from 'react'; declare type BulletNodeType = React.ReactElement | string; declare type OptionsType = { rowHeight?: number; speed?: number; opacity?: number; maxRow?: number; minGapWidth?: number; fontSize?: number; onBulletIn?: () => void; onBulletOut?: () => void; onQueueRunOut?: () => void; }; declare type EmitOptionsType = { color?: string; }; declare class Danmaku { static DEFAULT_ROW_HEIGHT: number; static DEFAULT_SPEED: number; static DEFAULT_FONTSIZE: number; static DEFAULT_OPACITY: number; static DEFAULT_GAP_WIDTH: number; private container; width: number; height: number; rowHeight: number; trackCount: number; speed: number; fontSize: number; opacity: number; minGapWidth: number; allPaused: boolean; isDestroyed: boolean; private options; private trackList; private queue; private isRunningWhenPageHide; static containerClassName: string; constructor(ele: string | HTMLElement, options?: OptionsType); static numberIsGreaterThanZero: (number: number | undefined) => boolean; static optionsParamsCheck(options?: OptionsType): void; private visibilityChangeEventHandle; private getTrackIndex; /** * 立即发送弹幕到屏幕上,自动寻找最空闲的轨道,若没有空闲轨道则可能有重叠弹幕 * @param node 要发送的React组件或者文本 */ emit(node: BulletNodeType, options?: EmitOptionsType): void; private hasFreeTrack; private popBulletToFreeTrack; /** * 当有空闲弹幕轨道时,直接发送弹幕,效果通emit方法一样, * 若全部轨道都占用,则将弹幕暂存到队列中,待空闲后再依次放出 * @param node */ push(node: BulletNodeType, options?: EmitOptionsType): void; pushAll(nodeArr: Array<BulletNodeType>, options?: EmitOptionsType): void; /** * pause */ pause(): void; /** * resume */ resume(): void; /** * destroy */ destroy(): void; /** * 获取剩余还没发出的弹幕数量 */ getRestAmount(): number; /** * 清空弹幕队列(只能清空排队中还未发出的弹幕) */ clearQueue(): void; } export default Danmaku;