/** * @class * @summary live2d 舞台数据 * @classdesc live2d 舞台数据集合, 用于存储 canvas, tips 等文档元素 * @memberof module:modules * @alias DStage */ export class DStage { /** * wrapper 元素的父元素, 默认是 body * * 如果 [selector]{@link DLive2dOptions.selector} 已经指定, 则父元素是 selector 对应的元素 * @summary 父元素 * @type {HTMLElement} * @default body */ parent; /** * 画布的包装器元素, 即画布的父元素 * @summary 包装器元素 * @type {HTMLElement} * @default div */ wrapper; /** * 模型需要使用的画布元素 * @summary 画布元素 * @type {HTMLCanvasElement} * @default canvas */ canvas; /** * 消息提示需要使用的元素 * @summary 消息提示元素 * @type {HTMLCanvasElement} * @default canvas */ tips; /** * 菜单项目的父元素 * @summary 菜单元素 * @type {HTMLElement} * @default div */ menus; /** * 与画布同级别的其它元素 * @summary 其它元素 * @type {HTMLElement} * @default div */ other; /** * 创建 stage 中的所有元素, 如果其中的元素没有指定, 则创建默认类型的元素 * @summary Stage数据构造 * @hideconstructor * @param {DStage | null} [data=null] 舞台数据 */ constructor(data = null) { this.parent = data?.parent ?? document.body; this.wrapper = data?.wrapper ?? document.createElement('div'); this.canvas = data?.canvas ?? document.createElement('canvas'); this.tips = data?.tips ?? document.createElement('div'); this.menus = data?.menus ?? document.createElement('div'); this.other = data?.other ?? document.createElement('div'); } }