mg.viewport
mg.viewport
对象可以用来读取或设置当前页面的用户可视区(即画布的可见区域)的信息。
- Type:
interface ViewportAPI {
center: Vector
zoom: number
readonly bound: Rect
rulerVisible: boolean
layoutGridVisible: boolean
layout: Layout
}
center
- Type:
center: Vector
interface Vector {
readonly x: number
readonly y: number
}
读取或设置可视区的中心点。例如:
// read
mg.viewport.center
// write
mg.viewport.center = { x: 100, y: 100 }
需要注意的是,你只能通过完全地设置 center
属性来实现对可视区的操作,而无法通过单独设置 center
对象的某个属性来完成对可视区的操作。例如,下面的代码是无效的:
mg.viewport.center.x = 100 // 无效
zoom
- Type:
zoom: number
读取或设置画布的缩放比例,值为 1
代表缩放比例为 100%
,值为 0.5
代表缩放比例为 50%
。例如:
// read
mg.viewport.zoom
// write
mg.viewport.zoom = 2 // 放大 2 倍
bound
- Readonly:
true
- Type:
bound: Rect
interface Rect {
readonly x: number
readonly y: number
readonly width: number
readonly height: number
}
bound
相当于可视区的边界信息。其中 bound.x
和 bound.y
描述了可视区左上角的画布坐标。bound.width
和 bound.height
为可视区的宽高。
rulerVisible
- Type:
boolean
显示标尺。
layoutGridVisible
- Type:
boolean
显示布局网络。
positionOnDom
- Readonly:
true
- Type:
Rect
画布在当前窗口的位置大小。
interface Rect {
readonly x: number
readonly y: number
readonly width: number
readonly height: number
}
layout
- Readonly:
true
- Type:
Layout
窗口的页面布局,获取页面宽度、左侧列表宽度、画布宽度、右侧属性面板宽度。
interface Layout {
readonly canvas: number
readonly leftbar: number
readonly rightbar: number
readonly window: number
}
TIP
已废弃,请改用positionOnDom.
scrollAndZoomIntoView
- Type:
(nodes: ReadonlyArray<BaseNode>): void
自动设置 viewport
的坐标,以使得 nodes
在屏幕上可见。