DocumentNode 是整个文档结构的根节点。每一个 Motiff 文档有且仅有一个对应的 DocumentNode,DocumentNode 节点的子节点都是 PageNode,你可以通过 DocumentNode 遍历整个文档。
Document properties
type: 'DOCUMENT' [readonly]
节点类型,值为 "DOCUMENT"
children: ReadonlyArray<PageNode> [readonly]
包含所有子节点的数组。在 DocumentNode 中,子节点只能是页面节点(PageNode)
documentColorProfile: 'SRGB' | 'DISPLAY_P3' [readonly]
文档的颜色配置文件
appendChild(child: PageNode): void
添加新页面到文档末尾
insertChild(index: number, child: PageNode): void
在指定位置插入新页面
findChildren(callback?: (node: PageNode) => boolean): Array<PageNode>
在文档的直接子节点中搜索(即所有页面节点,不包含它们的子元素)。返回所有满足条件的页面节点。
findChild(callback: (node: PageNode) => boolean): PageNode | null
在文档的直接子节点中搜索(即所有页面节点,不包含它们的子元素)。返回第一个满足条件的页面节点。
findAll(callback?: (node: PageNode | SceneNode) => boolean): Array<PageNode | SceneNode>
搜索整个文档树,返回所有满足条件的节点。
findOne(callback: (node: PageNode | SceneNode) => boolean): PageNode | SceneNode | null
搜索整个文档树,返回第一个满足条件的节点。
findAllWithCriteria<T extends NodeType[]>(criteria: FindAllCriteria<T>): Array< { type: T[number] } & (PageNode | SceneNode)>
搜索整个文档树,返回满足所有指定条件的节点。与普通的 findAll 不同,这个方法会搜索文档中的所有节点,包括 PageNode 对象。
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。