v1.11.0
发布时间: 2022/12/15
更新如下:
- 添加getNodeByPosition方法。
该方法与鼠标点击画布类似,据给定的画布中的世界坐标,查找相应的节点。如果没有找到对应的节点,则返回 null。
可以用于校验画布中添加图层的定位和信息,判断目标图层是否被遮挡等场景,或者与pluginDrop功能结合,实现“拖拽”进入容器,例如:
const containers = new Set<(SceneNode | PageNode)['type']>(['BOOLEAN_OPERATION','FRAME', 'COMPONENT', 'GROUP', 'PAGE'])
mg.on('drop', (dropEvent: DropEvent) => {
const {dropMetadata, absoluteX, absoluteY} = dropEvent;
const currentPage = mg.document.currentPage;
// 获取对应坐标的容器
let target = mg.getNodeByPosition({x: absoluteX, y: absoluteY});
while(target && !containers.has(target.type)){
target = target.parent;
}
const parent = target || currentPage;
mg.createNodeFromSvgAsync(dropMetadata.svg)
.then((frame) => {
frame.x = absoluteX - frame.width / 2,
frame.y = absoluteY - frame.height / 2,
parent.appendChild(frame)
mg.document.currentPage.selection = [frame]
mg.commitUndo();
})
})
- 文字图层分段样式新增lineHeightByPx字段,表示文字图层在画布中以px为单位的行高数值,当
lineHeight为百分比或自动行高时,通过这个字段能够读取文字分段样式中实际行高的像素值。