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
- 创建快照