v1.11.0

发布时间: 2022/12/15

更新如下:

该方法与鼠标点击画布类似,据给定的画布中的世界坐标,查找相应的节点。如果没有找到对应的节点,则返回 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为百分比或自动行高时,通过这个字段能够读取文字分段样式中实际行高的像素值。