PageNode 是 DocumentNode 的子节点。每个页面都是一个 PageNode 实例,它包含了该页面上的所有图层和元素。你可以通过 motiff.currentPage
访问当前页面。
Page properties
type: 'PAGE' [readonly]
节点类型,值为 "PAGE"
clone(): PageNode
复制当前页面,新创建的页面将被添加到 motiff.root
下。复制过程会保留以下内容:
- 所有原型连接关系会被复制,并指向复制页面中对应的元素
- 组件会被复制为实例,其主组件仍然指向原始组件
guides: ReadonlyArray<Guide>
页面中的所有参考线。
selection: ReadonlyArray<SceneNode>
当前页面中被选中的节点集合。每个页面都独立维护自己的选区。需要注意的是,选区中节点的顺序是不确定的,请不要依赖节点的排序。
当前正在编辑的文本节点(如果有的话),以及在该文本节点中被选中的文本范围。
backgrounds: ReadonlyArray<Paint>
画布的背景色。目前仅支持单一纯色。
Base node properties
id: string [readonly]
节点的唯一标识符,例如 "42:43"。
parent: (BaseNode & ChildrenMixin) | null [readonly]
返回当前节点的父节点(如果存在)。请注意这是一个只读属性,如需修改父节点关系,请使用 appendChild 方法。
name: string
在图层面板中显示的图层名称。调用 motiff.root.name
将返回当前文件的名称(只读)。
removed: boolean [readonly]
如果节点已被删除则返回 true。对于长时间运行的插件,建议编写防御性代码检查节点是否已被用户删除。
toString(): string
返回节点的字符串表示。此方法仅用于调试目的,请勿在生产环境中依赖其具体输出格式。
remove(): void
从文档中删除此节点及其所有子节点。
Plugin data properties
getPluginData(key: string): string
获取存储在节点或样式上的自定义数据。如果指定 key 不存在,返回空字符串。
setPluginData(key: string, value: string): void
在节点或样式上存储插件私有的自定义数据。
getPluginDataKeys(): string[]
获取存储在节点或样式上的所有自定义数据的 key。
getSharedPluginData(namespace: string, key: string): string
获取存储在节点或样式上的共享数据。如果指定的 namespace 和 key 不存在,返回空字符串。
setSharedPluginData(namespace: string, key: string, value: string): void
在节点或样式上存储可供所有插件访问的共享数据。
getSharedPluginDataKeys(namespace: string): string[]
获取指定 namespace 下所有共享数据的 key。
children: ReadonlyArray<SceneNode> [readonly]
包含所有子节点的数组,按照从后到前的顺序排列:
- 数组中的第一个元素是最底层的图层
- 数组中的最后一个元素是最顶层的图层
appendChild(child: SceneNode): void
在子节点数组末尾添加新的子节点,新节点在视觉上位于所有其他子节点的最上层。
insertChild(index: number, child: SceneNode): void
在子节点数组的指定位置插入新的子节点。
findChildren(callback?: (node: SceneNode) => boolean): SceneNode[]
搜索节点的直接子节点(不包括子节点的子节点)。返回所有满足条件的节点。
findChild(callback: (node: SceneNode) => boolean): SceneNode | null
搜索节点的直接子节点,返回第一个满足条件的节点。
findAll(callback?: (node: SceneNode) => boolean): SceneNode[]
搜索整个节点树(包括当前节点的所有后代节点)。返回所有满足条件的节点。
findOne(callback: (node: SceneNode) => boolean): SceneNode | null
搜索整个节点树,返回第一个满足条件的节点。
findAllWithCriteria<T extends NodeType[]>(criteria: FindAllCriteria<T>): Array< { type: T[number] } & SceneNode>
搜索整个节点树,返回满足所有指定条件的节点。
exportSettings: ReadonlyArray<ExportSettings>
存储在节点上的导出设置。
exportAsync(settings?: ExportSettings): Promise<Uint8Array>
exportAsync(settings: ExportSettingsSVGString): Promise<string>
将节点导出为编码后的图像。支持多种导出格式:
- 二进制格式(返回 Uint8Array)
- SVG 字符串格式