Stage 舞台类
Stage 类是整个画布的容器和管理器。
构造函数
typescript
constructor(drawer: HTMLElement)属性
基础属性
_elem: HTMLElement- 舞台元素_shapes: Shape[]- 图形列表_scale: number- 缩放比例_dpr: number- 设备像素比
状态控制
_loop: boolean- 是否循环渲染_mode: 'auto' | 'event'- 渲染模式_limit: boolean- 是否限制边界_stop: boolean- 是否停止渲染_isMoving: boolean- 是否正在移动_multiActive: boolean- 是否允许多选_useBuffer: boolean- 是否使用缓冲_stack: boolean- 是否使用堆栈
配置项
config: { maxWidth: number, maxHeight: number, sensitivity: number, minRotatable: number, themeColor: string, activeColor: string, showOutline: boolean }- 舞台配置
方法
初始化
_init(): void- 初始化舞台_initBound(): void- 初始化边界_initStyle(): void- 初始化样式_initCanvas(): void- 初始化画布
事件处理
on(event: string | string[], listener: Function, ignore?: boolean): void- 添加事件监听off(event: string | string[], listener: Function): void- 移除事件监听emit(event: string, ...args: any[]): Promise<void>- 触发事件
图形管理
add(shape: Shape, zIndex?: number): Promise<Shape>- 添加图形remove(shape: Shape | string, flag?: boolean): boolean- 移除图形get(name: string): Shape | null- 获取图形clear(): void- 清空舞台active(shape: Shape): void- 激活图形enableMultiActive(): void- 启用多选disableMultiActive(): void- 禁用多选
视图操作
setOffset(offset: {x: number, y: number}): void- 设置偏移resetOffset(): void- 重置偏移scale(zoom: number): void- 设置缩放getScale(): number- 获取缩放比例setElementStyle(style: object): void- 设置元素样式
模型管理
getModel(): any- 获取模型renderModel(): void- 渲染模型addModel(shape: Shape): void- 添加模型getModelShapes(flag?: boolean, index?: number | string): Shape[] | Shape | null- 获取模型图形setModel(shape: Shape): void- 设置模型clearModel(): void- 清空模型
视图管理
clearView(): void- 清空视图setView(shape: Shape): Promise<void>- 设置视图getViewBound(): any- 获取视图边界getView(): any- 获取视图
快照和序列化
r(snapshot?: any): void- 渲染快照alter(snapshot: any, flag?: boolean): Promise<void>- 修改快照undo(): void- 撤销操作redo(): void- 重做操作snap(flag?: boolean): any- 创建快照clearSnap(): void- 清空快照snapTest(): void- 测试快照toJson(): string- 转换为JSONloadJson(json: string | object, param?: object): Promise<void>- 加载JSONloadJsonWithSnap(json: string | object, param?: object): Promise<void>- 加载带快照的JSON
其他功能
bound(): any- 获取边界dpr(): number- 获取设备像素比shapes(flag?: boolean, index?: number | string): Shape[] | Shape | null- 获取图形getActive(): Shape | null- 获取当前激活的图形getIndex(shape: Shape): number- 获取图形索引canMultiActive(): boolean- 是否可以多选getColorBound(screen: any, flag?: boolean): any- 获取颜色边界createCanvas(w: number, h: number, append?: boolean, styles?: object): any- 创建画布reset(): void- 重置舞台hiddenOutline(): void- 隐藏轮廓showOutline(): void- 显示轮廓canShowOutline(): boolean- 是否可以显示轮廓
状态管理
undo(): void- 撤销操作redo(): void- 重做操作snap(flag?: boolean): any- 创建快照