Skip to content

SliceNode

切片是带有边界框的不可见对象,在编辑器中以虚线表示。 其目的是允许您导出文档的特定部分。

Slice node properties

type

  • Readonly: true
  • Type: SLICE

此节点的类型,由字符串“SLICE”表示

clone

  • Type: clone(): SliceNode

复制切片节点。

Base node properties

id

  • Readonly: true
  • Type: string

当前节点的 ID。

parent

  • Readonly: true
  • Type: (BaseNode & ChildrenMixin) | null

获取当前节点的父节点。

index

  • Readonly: true
  • Type: number

获取当前节点在同一层级下的顺序索引。

name

  • Type: string

读取或设置组件的名字,即图层面板中所展示的图层名称。

removed

  • Readonly: true
  • Type: boolean

如果节点被移除了,则返回 true。如果插件保持打开一段时间并存储对节点的引用,您应该防御性地编写代码并检查节点是否未被用户删除。

remove

  • Type: remove():void

从文档中删除此节点及其所有子节点。

toString

  • Type: string

返回节点的字符串表示形式。

setRelaunchData

  • Type: data: {[command: string]: string}): void
  • Tip: 跨线程通信

在节点上设置状态以在选择节点时显示按钮和描述。

getRelaunchData

  • Type: getRelaunchData(): { [command: string]: string }

检索存储在此节点上的重新启动数据,使用 setRelaunchData

getPluginData

  • Type: getPluginData(key: string): string

获取节点上存储自定义信息,对您的插件来说是私有的。如果要获取字符串以外的值类型,请先通过 JSON.parse 将其解码。

setPluginData

  • Type: setPluginData(key: string, value: string): void

允许您在任何节点上存储自定义信息,对您的插件来说是私有的。如果要存储字符串以外的值类型,请先通过 JSON.stringify 将其编码。

getPluginDataKeys

  • Type: getPluginDataKeys(): string[]

获取当前插件存储信息的所有键名。

getSharedPluginData

  • Type: getSharedPluginData(namespace: string, key: string): string

获取存储在特定命名空间上的共享数据。

setSharedPluginData

  • Type: setSharedPluginData(namespace: string, key: string, value: string): void

这使您可以在任何节点上存储自定义信息。您可以稍后通过使用相同的命名空间和键调用 getSharedPluginData 来检索它。要查找存储在特定命名空间中的节点上的所有数据,请使用 getSharpedPluginDataKeys

您使用此 API 编写的任何数据都可以被任何插件读取。目的是允许插件相互操作。如果您不希望其他插件能够读取您的数据,请改用 setPluginData

您还必须提供命名空间参数以避免与其他插件的键冲突。此参数是强制性的,以防止多个插件使用通用键名(如数据)并相互覆盖。我们建议传递一个标识您的插件的值。可以将此命名空间提供给其他插件的作者,以便他们可以从您的插件中读取数据。

namespace 用于标识您的插件并避免与其他插件发生键冲突的唯一字符串。命名空间必须至少包含 3 个字母数字字符。

getSharedPluginDataKeys

  • Type: getSharedPluginDataKeys(namespace: string): string[]

查找存储在特定命名空间中的节点上的所有数据的键名。

Scene node properties

visible

  • Type: boolean

节点是否可见。该属性不影响插件访问节点的能力。

locked

  • Type: boolean

节点是否被锁定,防止在画布上进行某些用户交互,例如选择和拖动。该属性不影响插件写入这些属性的能力。

componentPropertyReferences

  • Type: { [nodeProperty in 'visible' | 'characters' | 'mainComponent']?: string} | null

获取应用在当前节点上的所有组件属性。键值对当中的值会对应组件或组件集节点上通过 componentPropertyDefinitions 获取到的组件属性名称。

只有组件或实例节点的子节点才具有 componentPropertyReferences 属性。

boundVariables

  • Type: { readonly [field in VariableBindableNodeField]?: VariableAlias} & { readonly [field in VariableBindableTextField]?: VariableAlias[]} & { fills: VariableAlias[]; strokes: VariableAlias[]; effects: VariableAlias[]; layoutGrids: VariableAlias[]; componentProperties: { [propertyName: string]: VariableAlias }; textRangeFills: VariableAlias[] } [readonly]

绑定到此节点上特定字段的变量。

setBoundVariable

typescript
setBoundVariable(field: VariableBindableNodeField | VariableBindableTextField, variable: Variable | null): void

将此节点上的指定字段绑定到所提供的变量上。

explicitVariableModes

  • Type: { [collectionId: string]: string }

此节点显式设置的模式。对于场景节点,表示 resolvedVariableModes 的子集。

clearExplicitVariableModeForCollection

  • Type: clearExplicitVariableModeForCollection(collection: VariableCollection): void

清除在此节点上给定的集合的显式模式。

setExplicitVariableModeForCollection

  • Type: setExplicitVariableModeForCollection(collection: VariableCollection, modeId: string): void

为在此节点上给定的集合设置显式模式。

absoluteRenderBounds

  • Readonly: true
  • Type: Rect | null
  • Type Declaration: Rect

节点的实际边界,包括阴影、粗笔画和任何其他可能落在节点常规边界框之外的内容,这些边界框在 xywidth 和中定义 height。这个属性里面的 xy 代表节点在页面上的绝对位置。 如果节点不可见,此值将为 null

constrainProportions

  • Type: boolean

切换后,当用户通过属性面板调整图层大小时,使图层保持其比例。

rotation

  • Type: number

图层节点的旋转角度。值域为 [-180, 180]。其值等价于:

javascript
Math.atan2(-relativeTransform[1][0], relativeTransform[0][0]);

layoutAlign

  • Type: "STRETCH" | "INHERIT"

仅适用于自动布局画板的直接子级,否则忽略。确定图层是否应沿父级的反轴拉伸。默认为 INHERIT

layoutGrow

  • Type: number

此属性仅适用于自动布局画板的直接子级,否则忽略。确定图层是否应沿父级的主轴拉伸。0 对应于固定大小,1 对应于拉伸。

resize

  • Type: resize(width: number, height: number): void

调整节点大小。如果节点包含具有约束的子节点,它会在调整大小期间应用这些约束。如果父级具有自动布局,则导致父级调整大小。

resizeWithoutConstraints

  • Type: resizeWithoutConstraints(width: number, height: number): void

调整节点大小。如果父级没有自动布局,则节点的子节点永远不会调整大小,即使这些子节点有约束。如果父级具有自动布局,则节点父级子节点和都会调整大小(不能忽略此约束)。

rescale

  • Type: rescale(scale: number): void

缩放图层节点, 此 API 功能等同于使用工具栏中的缩放工具。

constraints

如果当前节点被包含在画板图层内,constraints表示约束的类型。

exportSettings

  • Type: exportSettings: ReadonlyArray<ExportSettings>
  • Type Declaration: ExportSettings

节点的导出设置。

getIsExportSizeExceeded

  • Type: getIsExportSizeExceeded(settings?: ExportSettings): boolean
  • Type Declaration: ExportSettings

判断导出尺寸是否超出上限。

exportAsync

  • Type: exportAsync(settings?: ExportSettings): Promise<Uint8Array>
  • Type Declaration: ExportSettings
  • Tip: 跨线程通信

将节点导出为编码图像。