简介
这是一个 Sketch 的原型 Javascript API。它仍在开发中,但目标是创建一个:
- 原生 Javascript
- 一个易于理解的 Sketch 内部结构子集
- 在 Sketch 版本之间完全支持(即,我们尽量不改变它,不像我们的内部 API,我们可以而且确实在需要时随时改变)
- 当绝对必要时,仍然允许您降级到我们的内部 API。
我们的想法是尽可能使这个 API 精简。主要原因是,如果我们(Sketch)承诺确保我们不会破坏它,那么确保这样做不会成为一个无法管理的任务至关重要。
同样,这只是一个正在开发中的东西,所以欢迎您对这个 API 的评论和建议 - 将它们发送到 [email protected],或创建一个问题来进行公开讨论。
安装
var sketch = require('sketch/dom')
var async = require('sketch/async')
var DataSupplier = require('sketch/data-supplier')
var UI = require('sketch/ui')
var Settings = require('sketch/settings')
// a more convenient require which exposes everything (might be a bit slower)
var sketch = require('sketch')
API 捆绑在 Sketch 中,因此不需要安装。您可以通过调用全局 require
函数来访问它。
Sketch 组件
API 的方法是将原生 Sketch 模型对象包装在 javascript 对象中。这些是薄包装,不包含任何状态 - 它们只作为一种向底层模型提供更简洁和更稳定的编码接口的方式存在。
每个 组件 遵循相同的 API
Component.fromNative(sketchObject)
从原生 Sketch 模型对象返回一个包装对象Component.toJSON()
返回一个表示组件的 JSON 对象new Component(properties)
创建一个新的原生 Sketch 模型对象并返回一个包装对象componentInstance.sketchObject
返回原生 Sketch 模型对象。componentInstance.isImmutable()
返回true
如果组件包装了原生 Sketch 模型对象的不可变版本。如果是这种情况,您将无法修改对象(设置任何属性将是无操作的)。componentInstance.type
返回一个表示组件类型的字符串。如果它是undefined
,这意味着我们无法匹配原生对象,并且我们返回了一个非常轻量级的包装器。
文档
var Document = require('sketch/dom').Document
一个 Sketch 文档。
属性 | |
---|---|
idstring | 文档的唯一 ID。 |
pages页面[] | 文档的页面。 |
selectedPage页面 | 文档的选中页面。 |
selectedLayers选择 | 用户在当前选中页面中选择的图层的集合。 |
pathstring | 文档的路径(或来自远程库的文档的应用播客 URL)。 |
sharedLayerStyles共享样式[] | 文档中定义的所有共享图层样式的列表。 |
sharedTextStyles共享样式[] | 文档中定义的所有共享文本样式的列表。 |
colors颜色资源[] | 文档中定义的颜色资源列表。修改返回的数组将更新文档颜色。 |
swatches色板[] | 文档中定义的色板列表。修改返回的数组将更新文档色板。 |
gradients渐变资源[] | 文档中定义的渐变资源列表。修改返回的数组将更新文档渐变。 |
colorSpace颜色空间 | 文档的颜色空间。 |
访问选定的文档
var document = require('sketch/dom').getSelectedDocument()
// also exposed on Document
var document = Document.getSelectedDocument()
返回
选定的文档或 undefined
如果没有文档打开。
访问所有打开的文档
var documents = require('sketch/dom').getDocuments()
// also exposed on Document
var documents = Document.getDocuments()
返回
文档数组。
创建一个新的文档
var document = new Document()
打开一个文档
// ask the user to select a document
Document.open((err, document) => {
if (err) {
// oh no, we failed to open the document
}
// if the user cancel the opening, `document` will be `undefined`
})
// open a sketch document at the specified path
Document.open('path/to/the/document.sketch', (err, document) => {
if (err) {
// oh no, we failed to open the document
}
})
一个打开现有 Sketch 文档或要求用户打开一个文档的方法。该方法是异步的,因此如果您想在文档打开后执行某些操作,请确保传递一个回调并在那里继续执行您的脚本。
参数 | |
---|---|
pathstring | 要打开的文档的路径。如果 undefined ,将要求用户选择一个。 |
callbackfunction | 在文档打开后调用的函数。如果打开文档失败,则使用一个 Error 和一个 Document (或 undefined )调用它。 |
按 ID 查找图层
var layer = document.getLayerWithID(layerId)
if (layer) {
// do something
}
一个帮助您查找此文档中具有给定 ID 的第一个图层的方法。
参数 | |
---|---|
layerIdstring - required | 要查找的图层的 ID |
返回
返回一个 图层 对象或 undefined
如果未找到。
按名称查找图层
var layers = document.getLayersNamed(name)
if (layers.length) {
// do something
}
一个帮助您查找此文档中具有给定名称的图层的方法。
参数 | |
---|---|
namestring - required | 要查找的图层的名称 |
返回
返回一个 图层 数组。
查找共享图层样式
var sharedStyle = document.getSharedLayerStyleWithID(sharedStyleId)
一个帮助您在文档中查找共享样式的方法。
参数 | |
---|---|
sharedStyleIdstring - required | 要查找的共享样式的 ID |
返回
返回一个 共享样式 对象或 undefined
如果未找到。
查找共享文本样式
var sharedStyle = document.getSharedTextStyleWithID(sharedStyleId)
一个帮助您在文档中查找共享样式的方法。
参数 | |
---|---|
sharedStyleIdstring - required | 要查找的共享样式的 ID |
返回
返回一个 共享样式 对象或 undefined
如果未找到。
获取所有符号源
var symbols = document.getSymbols()
一个获取文档中定义的所有符号源的方法。
返回
返回文档中定义的 符号母版 对象数组。
查找符号源
var source = document.getSymbolMasterWithID(symbolInstance.symbolId)
一个帮助您在文档中查找符号源的方法。
参数 | |
---|---|
symbolIdstring - required | 要查找的符号源的符号 ID |
返回
返回一个 符号母版 对象或 undefined
如果未找到。
居中显示图层
document.centerOnLayer(layer)
一个帮助您将文档窗口的视图居中显示在给定图层上的方法。
参数 | |
---|---|
layer图层 - required | 要将视图居中显示在的图层 |
保存文档
document.save()
document.save('path/to/the/document.sketch')
document.save('path/to/the/document.sketch', (err) => {
if (err) {
// saving the document failed :(
}
})
一个将文档保存到特定路径或要求用户选择保存位置的方法。该方法是异步的,因此如果您想在文档保存后执行某些操作,请确保传递一个回调并在那里继续执行您的脚本。
参数 | |
---|---|
pathstring | 文档将保存到的路径。如果 undefined ,将要求用户选择一个。 |
optionsobject | 保存操作的选项(仅在指定路径时使用)。 |
options.saveMode保存模式 | 保存文档的方式。 |
callbackfunction | 在文档保存后调用的函数。如果保存文档失败,则使用一个 Error 调用它。 |
关闭文档
document.close()
一个关闭文档的方法。
更改颜色空间
// By default the method assigns a new color space
document.changeColorSpace(ColorSpace.sRGB)
console.log(document.colorSpace === ColorSpace.sRGB) // true
// Pass true as an optional second argument
// to convert instead of assign
document.changeColorSpace(ColorSpace.P3, true)
console.log(document.colorSpace === ColorSpace.P3) // true
// Alternatively, use the property setter (the behaviour
// here is to always assign the color space)
document.colorSpace = ColorSpace.P3
console.log(document.colorSpace === ColorSpace.P3) // true
// Create a document with a pre-defined color space
const p3Doc = new Document({ colorSpace: ColorSpace.P3 })
一个更改文档颜色空间的方法。有关此主题的深入讨论以及分配和转换颜色空间之间的区别,请查看 颜色管理 文档。
Document.SaveMode
Document.SaveMode.SaveAs
document.save('path/to/the/document.sketch', {
saveMode: Document.SaveMode.SaveAs,
})
保存模式枚举。
值 | |
---|---|
保存 |
用文档的内容覆盖文档的文件 |
另存为 |
将文档的内容写入一个新文件,然后更改文档的当前位置以指向刚刚写入的文件 |
保存到 |
将文档的内容写入一个新文件,而不更改文档的当前位置以指向新文件。 |
Document.ColorSpace
Document.ColorSpace.Unmanaged
Document.ColorSpace.sRGB
Document.ColorSpace.P3
可用颜色空间设置枚举。
值 | |
---|---|
未管理 |
默认设置 |
sRGB |
sRGB 颜色配置文件 |
P3 |
显示 P3 颜色配置文件 |
库
var Library = require('sketch/dom').Library
一个 Sketch 库。
属性 | |
---|---|
idstring - readonly | 库的唯一 ID。 |
namestring - readonly | 库的名称。 |
validboolean - readonly | 如果 Sketch 能够加载库。如果库无效,方法通常不可用,因此在使用库执行任何操作之前始终检查此字段。 |
enabledboolean | 如果用户启用了库。 |
libraryType库类型 - readonly | 库的类型。 |
lastModifiedAtDate - readonly | 库上次更新的日期 |
访问所有库
var libraries = require('sketch/dom').getLibraries()
// also exposed on Library
var libraries = Library.getLibraries()
返回
库数组。
从路径获取库
var library = Library.getLibraryForDocumentAtPath(
'path/to/existing/document.sketch'
)
获取本地 Sketch 文档的库。如果文档已经添加为库,它将简单地返回它。如果它不是库,它将被添加。
参数 | |
---|---|
pathstring - required | 库的路径。 |
返回
路径中存在的库或路径中文档的新库。
从 RSS 提要 URL 获取远程库
Library.getRemoteLibraryWithRSS(
'https://url/to/feed/rss.xml',
(err, library) => {
if (err) {
// oh no, failed to load the library
}
}
)
获取 RSS 提要的远程库。如果 RSS 提要已经添加为库,它将简单地返回它。如果它不是库,它将被添加。
参数 | |
---|---|
urlstring - required | 描述库版本的 RSS 提要的 URL。 |
callbackfunction | 在库添加后调用的函数。如果添加库失败,则使用一个 Error 和一个 Library (或 undefined )调用它。 |
删除库
library.remove()
一个删除现有库的方法。
获取库的文档
var libDocument = library.getDocument()
库引用一个 Sketch 文档,你可以用这个方法访问它。
返回
库引用的 文档。如果无法访问文档,它可能会抛出错误。
获取可导入的符号
var document = sketch.getSelectedDocument()
var symbolReferences = library.getImportableSymbolReferencesForDocument(
document
)
要从库中导入符号,**不要**访问它的文档并直接查找符号源。而是获取库的 符号引用 并使用它们进行导入。
这些引用取决于你要将它们导入的文档。例如,如果文档已经导入了一个符号,它将引用本地版本以使所有实例保持同步。
返回
一个 可共享对象 数组,它表示你可以从库中导入的符号。
获取可导入的共享图层样式
var document = sketch.getSelectedDocument()
var stylesReferences = library.getImportableLayerStyleReferencesForDocument(
document
)
要从库中导入共享样式,**不要**访问它的文档并直接查找共享样式。而是获取库的 共享图层样式引用 并使用它们进行导入。
这些引用取决于你要将它们导入的文档。例如,如果文档已经导入了一个共享样式,它将引用本地版本以使所有实例保持同步。
返回
一个 可共享对象 数组,它表示你可以从库中导入的共享图层样式。
获取可导入的共享文本样式
var document = sketch.getSelectedDocument()
var stylesReferences = library.getImportableTextStyleReferencesForDocument(
document
)
要从库中导入共享样式,**不要**访问它的文档并直接查找共享样式。而是获取库的 共享文本样式引用 并使用它们进行导入。
这些引用取决于你要将它们导入的文档。例如,如果文档已经导入了一个共享样式,它将引用本地版本以使所有实例保持同步。
返回
一个 可共享对象 数组,它表示你可以从库中导入的共享图层样式。
获取可导入的共享色板
var document = sketch.getSelectedDocument()
var stylesReferences = library.getImportableSwatchReferencesForDocument(
document
)
要从库中导入色板,**不要**访问它的文档并直接查找色板。而是获取库的 共享色板引用 并使用它们进行导入。
这些引用取决于你要将它们导入的文档。例如,如果文档已经导入了一个共享色板,它将引用本地版本以使所有实例保持同步。
返回
一个 可共享对象 数组,它表示你可以从库中导入的共享色板。
Library.LibraryType
Library.LibraryType.LocalUser
库类型的枚举。
值 |
---|
内部 |
本地用户 |
远程用户 |
远程团队 |
远程第三方 |
可导入对象
var symbolReferences = library.getImportableSymbolReferencesForDocument(
document
)
可以从 库 中导入的对象。它的所有属性都是只读的。
属性 | |
---|---|
idstring | 对象的唯一 ID。 |
namestring | 对象的名称。 |
objectTypeImportableObjectType | 对象的类型。目前只会有 Library.ImportableObjectType.Symbol 。 |
libraryLibrary | 对象所属的库。 |
导入到文档中
var symbol = symbolReference.import()
var style = sharedStyleReference.import()
可导入对象与文档相关联,因此导入它将把它导入到所述文档中。
返回
如果对象的 objectType
为 Symbol
,它将返回一个 符号源,它将与库关联(意味着如果库更新,从源创建的 符号实例 也会更新)。
Library.ImportableObjectType
Library.ImportableObjectType.Symbol
可导入对象的类型枚举。
值 |
---|
符号 |
图层样式 |
文本样式 |
色板 |
样式
var Style = require('sketch/dom').Style
var shape = new Shape({
style: {
borders: [{ color: '#c0ffee' }],
},
})
shape.style.fills = [
{
color: '#c0ffee',
fillType: Style.FillType.Color,
},
]
text.style.textUnderline = 'double dash-dot'
图层的样式。
属性 | |
---|---|
opacitynumber | 图层的透明度,介于 0(透明)和 1(不透明)之间。 |
blendingModeBlendingMode | 用于确定合成颜色的混合模式。 |
blurBlur | 应用于图层的模糊。 |
fillsFill[] | 图层的填充。 |
bordersBorder[] | 图层的边框。 |
borderOptionsBorderOptions | 边框共有的选项。 |
shadowsShadow[] | 图层的阴影。 |
innerShadowsShadow[] | 图层的内阴影。 |
alignmentAlignment | 文本图层文本的水平对齐方式 |
verticalAlignmentVerticalAlignment | 文本图层文本的垂直对齐方式 |
kerningnumber / null |
文本图层字母之间的字距。 null 表示字距将由字体定义。 |
lineHeightnumber / null |
文本图层中一行文本的高度。 null 表示“自动”。 |
paragraphSpacingnumber | 文本图层中两段文本之间的间距。 |
textColorstring | 文本图层中文本颜色的 rgba 十六进制字符串(#000000ff 表示不透明黑色)。 |
fontSizenumber | 文本图层中字体的尺寸。 |
textTransform‘none’ / ‘uppercase’ / ‘lowercase’ | 应用于文本图层文本的变换。 |
fontFamilystring | 文本图层字体的名称。 'system' 表示操作系统的字体族(macOS 10.14 上为 '.SF NS Text' )。 |
fontWeightnumber | 文本图层字体的粗细。介于 0 到 12 之间,0 表示最细,12 表示最粗。并非所有粗细都适用于所有字体。设置当前字体族中不存在的字体粗细时,将改为设置最接近的现有粗细。 |
fontStyle‘italic’ / undefined | 文本图层字体的样式。 |
fontVariant‘small-caps’ / undefined | 文本图层字体的变体。 |
fontStretch‘compressed’ / ‘condensed’ / ‘narrow’ / ‘expanded’ / ‘poster’ / undefined | 文本图层字体的尺寸变体。 |
textUnderlinestring: <line-style> [<line-pattern>] ['by-word'] / undefined where <line-style> can be single / thick / double and <line-pattern> can be dot / dash / dash-dot / dash-dot-dot |
文本图层的下划线装饰。 |
textStrikethroughstring: <line-style> [<line-pattern>] ['by-word'] / undefined where <line-style> can be single / thick / double and <line-pattern> can be dot / dash / dash-dot / dash-dot-dot |
文本图层的删除线装饰。 |
fontAxesFontAxes | 文本图层字体的轴(仅在字体为可变字体时可用)。 |
获取默认行高
var defaultlineHeight = style.getDefaultLineHeight()
如果没有指定行高,style.lineHeight
将为 undefined
。你可以使用 style.getDefaultLineHeight()
获取字体的默认行高。
返回
如果图层是文本图层,则为数字,否则为 undefined
。
检查样式是否与共享样式同步
var isOutOfSync = style.isOutOfSyncWithSharedStyle(sharedStyle)
返回
样式是否与 共享样式 存在一些差异。
将样式与共享样式同步
style.syncWithSharedStyle(sharedStyle)
样式实例将使用共享样式的值进行更新。
var sharedStyle = styledLayer.sharedStyle
sharedStyle.style = style
共享样式值将使用样式进行更新。
Style.BlendingMode
Style.BlendingMode.Darken
混合模式的枚举。
值 |
---|
正常 |
变暗 |
正片叠底 |
颜色加深 |
变亮 |
滤色 |
颜色减淡 |
叠加 |
柔光 |
强光 |
差值 |
排除 |
色相 |
饱和度 |
颜色 |
亮度 |
模糊
shape.style.blur = {
center: {
x: 10,
y: 20,
},
type: Style.BlurType.Motion,
motionAngle: 10,
}
表示图层模糊的对象。
属性 | |
---|---|
blurTypeBlurType | 模糊的类型。 |
radiusnumber | 模糊的半径。 |
motionAnglenumber | 模糊的角度(仅在模糊类型为 Motion 时使用)。 |
centerobject | 模糊的中心(仅在模糊类型为 Zoom 时使用)。 |
center.xnumber | 模糊中心的水平坐标。 |
center.ynumber | 模糊中心的垂直坐标。 |
enabledboolean | 填充是否处于活动状态。 |
Style.BlurType
Style.BlurType.Background
模糊类型的枚举。
值 | |
---|---|
高斯模糊 |
一种常见的模糊类型,将在所有方向上准确地进行模糊。 |
运动模糊 |
只在一个方向上模糊,给人一种运动的错觉。 |
缩放模糊 |
将从某个特定点向外模糊。 |
背景模糊 |
这将模糊出现在图层后面的任何内容。 |
填充
shape.style.fills = [
{
color: '#c0ffee',
fillType: Style.FillType.Color,
},
]
表示填充的对象。 color
、gradient
和 pattern
将始终定义,而不管填充的类型是什么。
属性 | |
---|---|
fillTypeFillType | 填充的类型。 |
colorstring | 一个 rgba 十六进制字符串(#000000ff 表示不透明黑色)。 |
gradientGradient | 填充的渐变。 |
patternobject | 填充的图案。 |
pattern.patternTypePatternFillType | 图案应如何填充图层。 |
pattern.imageImageData / null |
图案的平铺图像。 |
pattern.tileScalenumber | 应用于图案平铺的比例。 |
enabledboolean | 填充是否处于活动状态。 |
Style.FillType
Style.FillType.Color
填充类型的枚举。
值 |
---|
颜色 |
渐变 |
图案 |
Style.PatternFillType
Style.PatternFillType.Fit
图案填充类型的枚举。
值 |
---|
平铺 |
填充 |
拉伸 |
适应 |
边框
shape.style.borders = [
{
color: '#c0ffee',
fillType: Style.FillType.Color,
position: Style.BorderPosition.Inside,
},
]
表示边框的对象。
属性 | |
---|---|
fillTypeFillType | 边框填充的类型。 |
colorstring | 一个 rgba 十六进制字符串(#000000ff 表示不透明黑色)。 |
gradientGradient | 填充的渐变。 |
enabledboolean | 边框是否处于活动状态。 |
positionBorderPosition | 边框的位置。 |
thicknessnumber | 边框的厚度。 |
Style.BorderPosition
Style.BorderPosition.Center
边框位置的枚举。
值 |
---|
Center |
Inside |
Outside |
BorderOptions
shape.style.borderOptions = {
dashPattern: [20, 5, 20, 5],
}
表示图层边框共享选项的对象。
属性 | |
---|---|
startArrowheadArrowhead | 路径起点箭头头的类型。 |
endArrowheadArrowhead | 路径起点箭头头的类型。 |
dashPatternnumber[] | 边框的虚线图案。例如,虚线图案 4-2 将绘制 4 像素的线条,然后留出 2 像素的间隙,再绘制 4 个像素,以此类推。虚线图案 5-4-3-2 将绘制 5 像素的线条,然后留出 4 像素的间隙,再绘制 3 像素的线条,然后留出 2 像素的间隙,再重复此过程。 |
lineEndLineEnd | 边框端点(如果可见)的类型。 |
lineJoinLineJoin | 边框连接(如果有)的类型。 |
Style.Arrowhead
Style.Arrowhead.OpenArrow
线图层箭头头类型的枚举。
值 |
---|
None |
OpenArrow |
FilledArrow |
Line |
OpenCircle |
FilledCircle |
OpenSquare |
FilledSquare |
Style.LineEnd
Style.LineEnd.Round
边框位置的枚举。
值 | |
---|---|
Butt |
这是默认选项,它将直接在矢量点绘制边框。 |
Round |
创建圆形半圆形路径端点,该端点扩展到矢量点之外。 |
Projecting |
类似于圆形端点,但具有直边。 |
Style.LineJoin
Style.LineJoin.Miter
边框位置的枚举。
值 | |
---|---|
Miter |
这将简单地创建一个角度或尖锐的连接。默认设置。 |
Round |
为边框创建一个圆角。半径相对于边框厚度。 |
Bevel |
这将在边框角落创建一个斜角边缘。 |
Shadow
shape.style.shadows = [
{
color: '#c0ffee',
blur: 3,
},
]
shape.style.innerShadows = [
{
color: '#c0ffee',
blur: 3,
},
]
表示阴影的对象。
属性 | |
---|---|
colorstring | 一个 rgba 十六进制字符串(#000000ff 表示不透明黑色)。 |
blurnumber | 阴影的模糊半径。 |
xnumber | 阴影的水平偏移量。 |
ynumber | 阴影的垂直偏移量。 |
spreadnumber | 阴影的扩展。 |
enabledboolean | 填充是否处于活动状态。 |
渐变
shape.style.fills = [
{
fillType: Style.FillType.Gradient,
gradient: {
gradientType: Style.GradientType.Linear,
from: {
x: 0,
y: 0,
},
to: {
x: 50,
y: 50,
},
stops: [
{
position: 0,
color: '#c0ffee',
},
{
position: 0.5,
color: '#0ff1ce',
},
{
position: 1,
color: '#bada55',
},
],
},
},
]
表示渐变的对象。
属性 | |
---|---|
gradientTypeGradientType | 渐变的类型。 |
fromPoint | 渐变起点的坐标。 |
toPoint | 渐变终点的坐标。 |
aspectRationumber | 当渐变为 Radial 时,起点和终点构成渐变椭圆的一个轴,而纵横比决定正交轴的长度 (aspectRatio === 1 表示它是圆形)。 |
stopsGradientStop[] | 渐变的不同停靠点。 |
Style.GradientType
Style.GradientType.Radial
渐变类型的枚举。
值 | |
---|---|
Linear |
线性渐变是最常见的,其中两种颜色将出现在对象的相反点,并混合或过渡到彼此。 |
Radial |
径向渐变将创建一个效果,其中颜色停靠点之间的过渡将以圆形图案进行。 |
Angular |
此效果允许您创建沿圆周(以图层最大宽度或高度为准)顺时针方向扫过的渐变。 |
Gradient Stops
表示渐变停靠点的对象。渐变的每种颜色都由一个停靠点表示。渐变可以具有任意数量的停靠点。
属性 | |
---|---|
positionnumber | 停靠点的位置。 0 表示渐变起点,而 1 表示渐变终点。 |
colorstring | 停靠点的颜色 |
Font Axes
// Get the axes
const axes = textLayer.style.fontAxes
// If axes is non-null the Text Layer's font
// is a valid variable font recognised by Sketch
if (axes) {
// Mutate the axes object, taking care
// to work within the min and max range
// specified for each axis
axes.Weight.value = axes.Weight.max
axes.Monospace.value = 1
// Apply the new axes to update
// the text layer
textLayer.style.fontAxes = axes
}
fontAxes
属性允许您调整 可变字体 公开的参数或“轴”。
它通过允许您获取和设置表示文本图层当前字体轴的对象来实现。该对象将只包含有关文本图层当前字体支持的轴的信息,这些轴因字体而异。
该对象以轴名为键,并具有以下结构的值
属性 | |
---|---|
idstring | 轴 ID |
minnumber | 轴上允许的最小值 |
maxnumber | 轴上允许的最大值 |
valuenumber | 当前轴值 |
Shared Style
var SharedStyle = require('sketch/dom').SharedStyle
document.sharedTextStyles.push({
name: 'Header 1',
style: text.style,
})
共享样式(图层样式或文本样式)。
属性 | |
---|---|
idstring | 共享样式的唯一 ID。 |
styleTypeSharedStyle.StyleType | 共享样式的类型。 |
namestring | 共享样式的名称。 |
styleStyle | 共享的样式值。 |
请注意,来自库的共享样式的
id
可能看起来像这样:FBFF821E-20F3-48C5-AEDC-89F97A8C2344[D1A683E0-5333-4EBE-977C-48F64F934E99]
。如果您有一个使用来自库的共享样式的图层的符号实例,以及文档中使用来自库的相同共享样式的图层,该样式将导入两次;一次用于图层,一次用于外部符号。这样做的原因与同步有关。如果您更改库中的共享样式,它将导致符号实例和共享样式在文档中过时。这将显示在组件同步表中,但您可以选择只同步共享样式(或符号)。使用这些“私有”共享样式意味着只同步共享样式不会隐式同步符号。
这些符号私有共享样式 ID 的格式为
SYMBOLID[STYLEID]
,其中:STYLEID
是原始库中原始共享样式的 ID。而SYMBOLID
是目标文档中外部符号的新的符号 ID。当我们有这样的符号私有样式时,相同的 ID 将用作本地 ID 和远程 ID。
从样式创建新的共享样式
const newSharedStyle = SharedStyle.fromStyle({
name: 'Header 1',
style: layer.style,
document: document,
})
// you can also push to the shared styles arrays directly
document.sharedTextStyles.push({
name: 'Header 1',
style: text.style,
})
在特定文档中以特定名称创建一个新的共享样式。
⚠️您只能插入本地共享样式(例如,未链接到库)。
document.sharedLayerStyles
返回外部共享样式(例如,链接到库)与本地共享样式的串联。因此,如果您尝试在开头插入一个新的共享样式(例如,使用unshift
),它将最终出现在本地共享样式的开头,但这可能不是所有共享样式的开头,如果有一些外部共享样式。
获取所有实例
var styles = sharedStyle.getAllInstances()
返回文档中所有页面上共享样式的所有实例的数组。
返回
一个 Style 数组。
获取所有实例的图层
var layers = sharedStyle.getAllInstancesLayers()
返回文档中所有页面上所有具有作为共享样式实例的样式的图层的数组。
返回
一个 Layer 数组。
获取定义样式的库
var originLibrary = sharedStyle.getLibrary()
如果共享样式是从库导入的,则可以使用该方法
- 了解它
- 取回库
返回
定义共享样式的 Library,或者如果它是本地共享样式,则为 null
。
同步本地引用与库版本
const success = sharedStyle.syncWithLibrary()
如果 Library 有一些更新,您可以将本地共享样式与库的版本同步,并绕过用户选择要引入的更新的面板。
返回
true
如果成功。
从库中取消链接本地引用
const success = sharedStyle.unlinkFromLibrary()
您可以取消链接来自库的共享样式,并将其变为本地共享样式。
返回
true
如果成功。
SharedStyle.StyleType
SharedStyle.StyleType.Text
共享样式类型的枚举。 Unknown
表示对象已损坏,Sketch 无法确定样式类型。
值 |
---|
Text |
Layer |
Unknown |
Symbol Override
var overrides = symbolInstance.overrides
一个 Symbol 覆盖。此组件未公开,仅在访问 Symbol Instance 或 Symbol Source 的 overrides
时返回。覆盖在实例注入文档之前不可用。
属性 | |
---|---|
pathstring | 覆盖的路径。它由嵌套符号的符号 ID 组成,用 / 分隔。 |
propertystring | 此覆盖控制的属性。它可以是文本覆盖的 "stringValue" 、嵌套符号的 "symbolID" 、共享图层样式覆盖的 "layerStyle" 、共享文本样式覆盖的 "textStyle" 、热点目标覆盖的 "flowDestination" 或图像覆盖的 "image" 。 |
idstring | 覆盖的唯一 ID (${path}_${property} )。 |
symbolOverrideboolean | 如果覆盖是嵌套符号覆盖。 |
valueString / ImageData | 覆盖的值,可以更改。 |
isDefaultboolean | 如果覆盖尚未更改,并且是默认值。 |
affectedLayerText / Image / Symbol Instance | 覆盖应用到的图层。它将是图层的不可变版本。 |
editableboolean | 如果覆盖的值可以更改。 |
selectedboolean / undefined | 如果覆盖被选中(或 undefined 如果它是符号源的覆盖)。 |
获取覆盖的框架
var frame = override.getFrame()
覆盖的框架可能与受影响图层的框架不同,例如当符号实例被缩放时。
返回
一个 Rectangle,描述受影响图层在符号实例坐标系中的框架。
Flow
var Flow = require('sketch/dom').Flow
与图层关联的原型操作。
属性 | |
---|---|
targetArtboard / Flow.BackTarget | 操作的目标画板或 Flow.BackTarget (如果操作是后退操作)。 |
targetIdstring / Flow.BackTarget | 操作的目标画板的 ID 或 Flow.BackTarget (如果操作是后退操作)。 |
animationTypeAnimationType | 动画的类型。 |
创建一个新的原型操作
layer.flow = {
target: artboard,
}
您可以创建一个操作,而无需指定动画类型,它将使用默认类型。
layer.flow = {
targetId: artboard.id,
}
您可以使用画板的 ID 而不是画板来创建操作。
layer.flow = {
target: artboard,
animationType: Flow.AnimationType.slideFromLeft,
}
您还可以指定 动画类型。
layer.flow = {
target: Flow.BackTarget,
}
您还可以创建后退操作。
检查操作是否为后退操作
layer.flow.isBackAction()
返回原型操作是否是后退操作,例如,是否 layer.flow.target === Flow.BackTarget
。
检查目标是否有效
layer.flow.isValidConnection()
在某些情况下,操作的目标可能无效,例如当目标已从文档中删除时。方法会返回目标是否有效。
Flow.BackTarget
layer.flow = {
target: Flow.BackTarget,
}
Flow.BackTarget
是一个常量,您可以将目标设置为它,以便始终带您返回到您最后查看的画板。当目标设置为 Flow.BackTarget
时,进入它的过渡将在返回时反转。
Flow.AnimationType
Flow.AnimationType.slideFromLeft
动画类型的枚举。
值 | |
---|---|
none |
无动画 |
slideFromLeft |
从左侧滑动 |
slideFromRight |
从右侧滑动 |
slideFromBottom |
从底部滑动 |
slideFromTop |
从顶部滑动 |
导出格式
与图层关联的导出格式。
属性 | |
---|---|
fileFormatstring | 导出的文件格式。 |
prefixstring / undefined |
添加到文件名之前的缀。 |
suffixstring / undefined |
添加到文件名之后的后缀。 |
sizestring | 导出的尺寸。有效值为 2x ,100w ,100width ,100px ,300h ,300height 。 |
有效的导出文件格式
jpg
png
tiff
eps
pdf
webp
svg
选择
var selection = document.selectedLayers
一个实用程序类,用于表示图层选择。包含一些使与选择交互更容易的方法。
属性 | |
---|---|
layersLayer[] | 选择中的图层。设置此属性将更改选择。 |
lengthnumber - read-only | 选择中的图层数量。 |
isEmptyboolean - read-only | 选择是否包含任何图层? |
map
, forEach
, 和 reduce
selection.forEach(layer => log(layer.id))
selection.map(layer => layer.id)
selection.reduce((initial, layer) => {
initial += layer.name
return initial
}, '')
即使选择不是数组,它也定义了 map
, forEach
和 reduce
,只需将参数转发给它的图层。这些只是方便的方法,可以避免每次都获取图层。
清除选择
selection.clear()
清除选择。
返回
返回选择(如果您想链接调用,这很有用)。
点
一个实用程序类,用于表示一个点。
属性 | |
---|---|
xnumber / Point | 点的 x 坐标。 |
ynumber | 点的 y 坐标。 |
获取一个 CGPoint
var cgPoint = point.asCGPoint()
将点作为 CGPoint
返回。
获取一个 NSPoint
var nsPoint = rect.asNSPoint()
将点作为 NSPoint
返回。
曲线点
一个实用程序类,用于表示曲线点(带手柄,用于控制路径中的曲线)。
属性 | |
---|---|
pointPoint | 点的坐标。 |
curveFromPoint | 传入路径的手柄控制点的坐标。 |
curveToPoint | 传出路径的手柄控制点的坐标。 |
cornerRadiusnumber | 点的圆角。 |
pointTypePointType | 点的类型。 |
检查点是否被选中
shape.points[0].isSelected()
如果用户当前正在编辑路径,您可以使用 curvePoint.isSelected()
方法检查曲线点是否被选中。
CurvePoint.PointType
动画类型的枚举。
值 |
---|
Undefined |
Straight |
Mirrored |
Asymmetric |
Disconnected |
Rectangle
var Rectangle = require('sketch/dom').Rectangle
var rect = new Rectangle(0, 0, 100, 100)
var rectFromAnotherRect = new Rectangle(rect)
一个实用程序类,用于表示矩形。包含一些使与矩形交互更容易的方法。
属性 | |
---|---|
xnumber / Rectangle | 矩形左上角的 x 坐标。或者一个包含 {x, y, width, height} 的对象。 |
ynumber | 矩形左上角的 y 坐标。 |
widthnumber | 矩形的宽度。 |
heightnumber | 矩形的高度。 |
偏移矩形
var newRect = rect.offset(x, y)
通过偏移调整矩形。
返回
返回此矩形(如果您想链接调用,这很有用)。
缩放矩形
var newRect = rect.scale(scaleWidth, scaleHeight)
通过缩放调整矩形。可以省略 scaleHeight
参数以在宽度和高度上应用相同的系数。
返回
返回此矩形(如果您想链接调用,这很有用)。
更改坐标系
var newRect = rect.changeBasis({
from: layerA,
to: layerB,
})
var parentRect = rect.changeBasis({
from: layerA,
to: layerA.parent,
})
var pageRect = rect.changeBasis({
from: layerA,
// leaving out `to` means changing the
// basis to the Page's basis
})
每个图层都定义了自己的坐标系(原点位于图层左上角)。您可以使用 changeBasis
将该 坐标系 从一个图层更改到另一个图层。
参数 | |
---|---|
changeobject - required | |
change.fromLayer | 表示矩形坐标的图层。 |
change.toLayer | 将表示矩形坐标的图层。 |
可以省略 from
和 to
(但不能同时省略)以更改相对于页面坐标的坐标系。
获取一个 CGRect
var cgRect = rect.asCGRect()
将矩形作为 CGRect
返回。
获取一个 NSRect
var nsRect = rect.asNSRect()
将矩形作为 NSRect
返回。
fromNative
var sketch = require('sketch/dom')
var document = sketch.fromNative(context.document)
一个实用程序函数,用于从本机 Sketch 模型对象获取包装后的对象。
参数 | |
---|---|
objectNative Sketch Object | 要包装的本机 Sketch 模型对象。 |
返回
正确类型的包装后的对象(您可以使用 wrappedObject.type
检查其类型),例如,本机文档将被包装为 Document,而本机文本图层将被包装为 Text。
Assets
用于表示从文档或全局检索的可重用资产的包装器类。
颜色资产
属性 | |
---|---|
namestring | 资产的名称,或 null。 |
colorstring | 颜色的十六进制字符串。 |
获取全局颜色
var sketch = require('sketch/dom')
var colors = sketch.globalAssets.colors
返回
一个 ColorAsset 对象数组。
渐变资产
属性 | |
---|---|
namestring | 资产的名称,或 null。 |
gradientGradient | 渐变对象。 |
获取全局渐变
var sketch = require('sketch/dom')
var gradients = sketch.globalAssets.gradients
返回
一个 GradientAsset 对象数组。
色板
属性 | |
---|---|
namestring | 色板的名称,或 null。 |
colorstring | 颜色的十六进制字符串。 |
获取引用颜色
var sketch = require('sketch')
var mySwatch = sketch.Swatch.from({
name: 'Safety Orange',
color: '#ff6600'
})
var myColor = mySwatch.referencingColor
返回
一个 Color,它引用颜色变量,您可以在 API 期待 Color 对象的任何地方使用它。
SmartLayout
The SmartLayout object contains the set of possible Smart Layouts that can be applied to SymbolMaster and Group layers.
属性 | |
---|---|
LeftToRight | 从左到右流动的智能布局 |
HorizontallyCenter | 从中心水平扩展的智能布局 |
RightToLeft | 从右到左流动的智能布局 |
TopToBottom | 从上到下流动的智能布局 |
VerticallyCenter | 从中心垂直扩展的智能布局 |
BottomToTop | 从下到上流动的智能布局 |
设置智能布局
const SmartLayout = require('sketch').SmartLayout
layer.smartLayout = SmartLayout.TopToBottom
给定对 SymbolMaster 或 Group 图层的引用,使用 smartLayout
setter 应用其中一个智能布局值。
清除智能布局
将 smartLayout
值设置为 null
以删除智能布局。这等同于在 Sketch 检查器中选择“无”。
symbol.smartLayout = null
触发智能布局
const SmartLayout = require('sketch').SmartLayout
symbol.smartLayout = SmartLayout.TopToBottom
symbolInstance.resizeWithSmartLayout()
为了触发实例中的智能布局调整大小,例如在更改覆盖值之后,请在 SymbolInstance 图层上调用 resizeWithSmartLayout()
方法。
Layer
Sketch 图层。这是大多数 Sketch 组件的基类,并定义了用于操作它们的方法。
属性 | |
---|---|
idstring | 图层的唯一 ID。 |
namestring | 图层的名称 |
parentGroup | 图层所在的组。 |
lockedboolean | 图层是否被锁定。 |
hiddenboolean | 图层是否被隐藏。 |
frameRectangle | 图层的框架。这以相对于图层父级的局部坐标给出。 |
selectedboolean | 图层是否被选中。 |
flowFlow | 与图层关联的原型操作。 |
exportFormatsExportFormat[] | 图层的导出格式。 |
transformobject | 应用于图层的变换。 |
transform.rotationnumber | 图层的旋转角度(以度为单位,顺时针方向)。 |
transform.flippedHorizontallyboolean | 图层是否水平翻转。 |
transform.flippedVerticallyboolean | 图层是否垂直翻转。 |
复制图层
var duplicatedLayer = layer.duplicate()
一个新的相同图层将被插入到此图层的父级中。
返回
一个新的 Layer。
移除图层
layer.remove()
从其父级中移除此图层。
返回
当前图层(如果您想链接调用,这很有用)。
获取层次结构中的位置
var index = layer.index
此图层在其父级中的索引。位于父级最背面(视觉上)的图层将是图层 0
。最前面的图层将是图层 n - 1
(如果有 n
个图层)。
在层次结构中移动图层
使用索引
layer.index = 2
您可以设置图层的索引以在层次结构中移动它。
移动到最前面
layer.moveToFront()
// which is the same as
layer.index = layer.parent.layers.length - 1
将此图层移动到其父级最前面。
返回
当前图层(如果您想链接调用,这很有用)。
向前移动
layer.moveForward()
// which is the same as
layer.index = layer.index + 1
在父级中将此图层向前移动。
返回
当前图层(如果您想链接调用,这很有用)。
移动到最背面
layer.moveToBack()
// which is the same as
layer.index = 0
将此图层移动到其父级最背面。
返回
当前图层(如果您想链接调用,这很有用)。
向后移动
layer.moveBackward()
// which is the same as
layer.index = layer.index - 1
在父级中将此图层向后移动。
返回
当前图层(如果您想链接调用,这很有用)。
访问图层的层次结构
// access the page the layer is in
layer.getParentPage()
page.getParentPage() === undefined
// access the artboard the layer is in (if any)
layer.getParentArtboard()
artboard.getParentArtboard() === undefined
// access the Symbol Source the layer is in (if any)
layer.getParentSymbolMaster()
symbolMaster.getParentSymbolMaster() === undefined
// access the shape the layer is in (if any)
layer.getParentShape()
除了直接的 parent
之外,您还可以访问图层层次结构中的其他几个实体。
组
var Group = require('sketch/dom').Group
一个图层组。它也是 Layer 的实例,因此那里定义的所有方法都可用。
属性 | |
---|---|
idstring | 组的唯一 ID。 |
namestring | 组的名称 |
parentGroup | 组所在的组。 |
lockedboolean | 组是否被锁定。 |
hiddenboolean | 组是否被隐藏。 |
frameRectangle | 组的框架。这以相对于图层父级的局部坐标给出。 |
selectedboolean | 组是否被选中。 |
flowFlow | 与组关联的原型操作。 |
exportFormatsExportFormat[] | 组的导出格式。 |
transformobject | 应用于组的变换。 |
transform.rotationnumber | 组的旋转角度(顺时针方向)。 |
transform.flippedHorizontallyboolean | 组是否水平翻转。 |
transform.flippedVerticallyboolean | 组是否垂直翻转。 |
styleStyle | 组的样式。 |
sharedStyle共享样式 / null |
关联的共享样式或 null 。 |
sharedStyleId字符串 / null |
共享样式的 ID 或 null ,与 sharedStyle.id 相同。 |
layersLayer[] | 此组件分组在一起的图层。 |
smartLayout智能布局 | 组的智能布局。 |
创建一个新的组
new Group()
var group = new Group({
name: 'my name',
layers: [
{
type: sketch.Types.Text,
text: 'Hello world',
},
],
})
调整以适合其子元素
group.adjustToFit()
调整组以适合其子元素。
返回
当前组(如果您想链接调用,这很有用)。
页面
var Page = require('sketch/dom').Page
Sketch 页面。它是 图层 和 组 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 页面的唯一 ID。 |
namestring | 页面的名称 |
parent文档 | 页面所在的文档。 |
layersLayer[] | 此页面拥有的图层和画板数组。它包含页面的第一级子级。如果您需要访问页面中的所有图层和子图层,请使用 find 。 |
frameRectangle | 页面的框架。 |
selectedboolean | 页面是否被选中。 |
创建一个新页面
new Page()
new Page({
name: 'my page',
})
获取页面选定的图层
var selection = document.selectedLayers
一个只读属性,用于获取用户在页面中选择的图层。
返回
返回一个 选择 对象。
符号页面
“符号”页面类似于其他页面。它唯一特殊的地方是在创建符号时,Sketch 会询问用户是否要将其移到该页面。
您可以将符号放在任何页面中,但如果您想遵守 Sketch 制定的约定,这里有一些方法可以帮助您做到这一点。
获取符号页面
var symbolsPage = Page.getSymbolsPage(document)
获取文档符号页面的方法。
参数 | |
---|---|
document文档 - 必需 | 您要从中获取符号页面的文档。 |
返回
返回一个 页面 或 undefined
(如果还没有符号页面)。
创建符号页面
var symbolsPage = Page.createSymbolsPage()
symbolsPage.parent = document
创建 Sketch 将识别为符号页面的名称的页面的一种方法。
返回
返回一个 页面。
知道页面是否是符号页面
var isSymbolsPage = page.isSymbolsPage()
一种方法来判断页面是否是符号页面。
返回
返回一个 boolean
。
画板
var Artboard = require('sketch/dom').Artboard
Sketch 画板。它是 图层 和 组 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 画板的唯一 ID。 |
namestring | 画板的名称 |
parent页面 | 画板所在的页面。 |
selectedboolean | 画板是否被选中。 |
layersLayer[] | 此组件分组在一起的图层。 |
frameRectangle | 画板的框架。这以相对于图层父级的坐标给出。 |
flowStartPoint布尔值 | 起点允许您选择从哪里开始原型。 |
exportFormatsExportFormat[] | 画板的导出格式。 |
background对象 | 画板的背景 |
background.enabled布尔值 | 背景是否应启用,例如显示或不显示 |
background.includedInExport布尔值 | 背景是否应导出,或者在导出期间是否应透明 |
background.color字符串 | 背景颜色的 rgba 表示形式 |
创建一个新的画板
new Artboard()
new Artboard({
name: 'my name',
flowStartPoint: true,
})
形状
var Shape = require('sketch/dom').Shape
形状图层。它是 图层 的实例,因此所有在那里定义的方法都可用。它由其图层塑造,这些图层之间具有布尔运算。
属性 | |
---|---|
idstring | 形状的唯一 ID。 |
namestring | 形状的名称 |
parentGroup | 形状所在的组。 |
lockedboolean | 形状是否被锁定。 |
hiddenboolean | 形状是否被隐藏。 |
frameRectangle | 形状的框架。这以相对于图层父级的坐标给出。 |
selectedboolean | 形状是否被选中。 |
flowFlow | 与形状关联的原型操作。 |
exportFormatsExportFormat[] | 形状的导出格式。 |
transformobject | 应用于图层的变换。 |
transform.rotationnumber | 图层的旋转角度(以度为单位,顺时针方向)。 |
transform.flippedHorizontallyboolean | 图层是否水平翻转。 |
transform.flippedVerticallyboolean | 图层是否垂直翻转。 |
styleStyle | 形状的样式。 |
sharedStyle共享样式 / null |
关联的共享样式或 null 。 |
sharedStyleId字符串 / null |
共享样式的 ID 或 null ,与 sharedStyle.id 相同。 |
创建一个新的形状
new Shape({
name: 'my shape',
})
图像
var Image = require('sketch/dom').Image
图像图层。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 图像的唯一 ID。 |
namestring | 图像的名称 |
parentGroup | 图像所在的组。 |
lockedboolean | 图像是否被锁定。 |
hiddenboolean | 图像是否被隐藏。 |
frameRectangle | 图像的框架。这以相对于图层父级的坐标给出。 |
selectedboolean | 图像是否被选中。 |
flowFlow | 与图像关联的原型操作。 |
exportFormatsExportFormat[] | 图像的导出格式。 |
transformobject | 应用于图像的变换。 |
transform.rotationnumber | 图像的旋转角度(顺时针方向)。 |
transform.flippedHorizontallyboolean | 图像是否水平翻转。 |
transform.flippedVerticallyboolean | 图像是否垂直翻转。 |
styleStyle | 图像的样式。 |
sharedStyle共享样式 / null |
关联的共享样式或 null 。 |
sharedStyleId字符串 / null |
共享样式的 ID 或 null ,与 sharedStyle.id 相同。 |
imageImageData | 图层的实际图像。 |
创建一个新图像
var imageLayer = new Image({
image: 'path/to/image.png',
})
image 属性接受各种输入
- 一个
ImageData
- 一个
Buffer
- 一个本地
NSImage
- 一个本地
NSURL
- 一个本地
MSImageData
- 一个字符串:要从中加载图像的文件的路径
- 一个具有
path
属性的对象:要从中加载图像的文件的路径 - 一个具有
base64
字符串的对象:一个 base64 编码的图像
var imageLayer = new Image({
image: 'path/to/image.png',
frame: new Rectangle(0, 0, 300, 200),
})
默认情况下,Image
图层将以 100 × 100 像素的大小创建,除非您在其构造函数上提供 frame
属性。
原始大小
imageLayer.resizeToOriginalSize()
将图像调整为其原始大小。这相当于按下 Sketch 检查器中的“原始大小”按钮。
返回
当前图像(如果您想链接调用,这很有用)。
出于性能原因,Sketch 延迟初始化 Image
对象。因此,如果您想将图像图层的尺寸设置为原始文件的尺寸,您需要先创建该对象,然后调用 resizeToOriginalSize
方法。
ImageData
var imageData = imageLayer.image
imageData.nsimage // return a native NSImage
imageData.nsdata // return a native NSData representation of the image
一个 ImageData
是一个本地 NSImage
的包装器。
您可以使用 nsimage
访问本地 NSImage
,或者使用 nsdata
访问图像的本地 NSData
表示形式。
imageLayer.image.size // { width: 100, height: 100 }
为了方便起见,您可以通过其 size
属性访问 ImageData
对象的原始大小。
形状路径
var ShapePath = require('sketch/dom').ShapePath
一个形状路径图层。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 形状路径的唯一 ID。 |
namestring | 形状路径的名称 |
parentGroup | 形状路径所在的组。 |
lockedboolean | 形状路径是否被锁定。 |
hiddenboolean | 形状路径是否被隐藏。 |
frameRectangle | 形状路径的框架。这以相对于图层父级的坐标给出。 |
selectedboolean | 形状路径是否被选中。 |
flowFlow | 与形状路径关联的原型操作。 |
exportFormats导出格式[] | 形状路径的导出格式。 |
styleStyle | 形状路径的样式。 |
sharedStyle共享样式 / null |
关联的共享样式或 null 。 |
sharedStyleId字符串 / null |
共享样式的 ID 或 null ,与 sharedStyle.id 相同。 |
shapeType形状类型 | 形状路径的类型。它只能在创建新的形状路径时设置。 |
points曲线点[] | 定义形状路径的点。 |
closed布尔值 | 路径是否闭合。 |
创建一个新的形状路径
const shapePath = new ShapePath({
name: 'my shape path',
shapeType: ShapePath.ShapeType.Oval,
})
您只能在创建新的形状路径时设置 shapeType
。创建后,shapeType
是只读的。如果它没有指定并且您没有指定任何 points
,它将默认设置为 ShapePath.ShapeType.Rectangle
(如果您指定了一些 points
,它将默认设置为 ShapePath.ShapeType.Custom
)。
const shapePath = ShapePath.fromSVGPath('M10 10 H 90 V 90 H 10 L 10 10')
您还可以从 SVG 路径创建新的形状路径(在 SVG 中 path
标记的 d
属性中使用的字符串)。有关 SVG 路径的更多信息,请参阅 MDN 文档。
获取 SVG 路径
const svgPath = shapePath.getSVGPath()
返回表示形状路径的 SVG 路径的字符串。
ShapePath.ShapeType
ShapePath.ShapeType.Oval
共享样式类型的枚举。
值 |
---|
Rectangle |
椭圆 |
三角形 |
多边形 |
星形 |
自定义 |
ShapePath.PointType
ShapePath.PointType.Undefined
点类型的枚举。
值 |
---|
Undefined |
Straight |
Mirrored |
Asymmetric |
Disconnected |
Text
var Text = require('sketch/dom').Text
文本图层。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 文本的唯一 ID。 |
namestring | 文本的名称 |
parentGroup | 文本所在的组。 |
lockedboolean | 文本是否被锁定。 |
hiddenboolean | 文本是否被隐藏。 |
frameRectangle | 文本的框架。这以相对于图层父级的坐标给出。 |
selectedboolean | 文本是否被选中。 |
flowFlow | 与文本关联的原型操作。 |
exportFormatsExportFormat[] | 符号源的导出格式。 |
transformobject | 应用于文本的变换。 |
transform.rotationnumber | 文本的旋转角度(顺时针方向)。 |
transform.flippedHorizontallyboolean | 文本是否水平翻转。 |
transform.flippedVerticallyboolean | 文本是否垂直翻转。 |
styleStyle | 文本的样式。 |
sharedStyle共享样式 / null |
关联的共享样式或 null 。 |
sharedStyleId字符串 / null |
共享样式的 ID 或 null ,与 sharedStyle.id 相同。 |
text字符串 | 文本图层的字符串值。 |
lineSpacing行距 | 图层的行距。 |
fixedWidth布尔值 | 图层是否应具有固定宽度或灵活宽度。 |
创建一个新的文本
var text = new Text({
text: 'my text',
alignment: Text.Alignment.center,
})
调整以适合其值
text.adjustToFit()
调整文本以适合其值。
返回
当前文本(如果您想链接调用,这很有用)。
fragments
var fragments = text.fragments
返回文本的文本片段数组。每个片段都是一个包含矩形、基线偏移、片段范围和子字符串 {rect, baselineOffset, range, text}
的对象。
Text.Alignment
Text.Alignment.center
文本对齐方式的枚举。
值 | |
---|---|
left |
视觉上左对齐 |
右 |
视觉上右对齐 |
居中 |
视觉上居中 |
两端对齐 |
两端对齐。段落中的最后一行是自然对齐的。 |
Text.VerticalAlignment
Text.VerticalAlignment.center
文本垂直对齐方式的枚举。
值 | |
---|---|
顶部 |
视觉上顶部对齐 |
居中 |
视觉上垂直居中 |
底部 |
视觉上底部对齐 |
Text.LineSpacing
Text.LineSpacing.constantBaseline
文本行间距行为的枚举。
值 | |
---|---|
constantBaseline |
使用段落样式的最小和最大行高 |
variable |
使用 MSConstantBaselineTypesetter 用于固定行高 |
符号源
var SymbolMaster = require('sketch/dom').SymbolMaster
一个 符号 源。它是 画板(因此也是 图层 和 组)的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 符号源对象的唯一 ID(不要与 symbolId 混淆)。 |
namestring | 符号源的名称 |
parentGroup | 符号源所在的组。 |
frameRectangle | 符号源的框架。这是以相对于图层父级的坐标给出的。 |
selectedboolean | 如果符号源被选中。 |
exportFormatsExportFormat[] | 符号源的导出格式。 |
layersLayer[] | 构成符号源的图层。 |
background对象 | 符号源的背景 |
background.enabled布尔值 | 背景是否应启用,例如显示或不显示 |
background.includedInExport布尔值 | 背景是否应导出,或者在导出期间是否应透明 |
background.includedInInstance布尔值 | 如果背景应该出现在符号源的实例中 |
background.color字符串 | 背景颜色的 rgba 表示形式 |
symbolId字符串 | 源及其实例共享的符号的唯一 ID。 |
overrides覆盖[] | 符号源实例能够更改的覆盖数组。 |
创建一个新的符号源
var symbol = new SymbolMaster({
name: 'my symbol',
})
从画板创建一个新的符号源
var symbol = SymbolMaster.fromArtboard(artboard)
用符号源替换画板。
参数 | |
---|---|
artboard画板 - 必需 | 用于创建符号源的画板。 |
返回
一个新的 SymbolMaster
更改为画板
var artboard = symbol.toArtboard()
用画板替换符号源,并分离所有实例,将其转换为组。
返回
一个新的 画板
创建一个新的实例
var instance = symbol.createNewInstance()
创建一个新的 符号实例,链接到此源,准备插入文档中。
返回
一个新的 符号实例
获取所有实例
var instances = symbol.getAllInstances()
返回文档中所有页面上所有符号实例的数组。
获取定义符号源的库
var originLibrary = symbol.getLibrary()
如果符号源是从库导入的,则可以使用此方法
- 了解它
- 取回库
返回
定义符号所在的 库,或 null
,如果它是本地符号。
同步本地引用与库版本
const success = symbol.syncWithLibrary()
如果 库 有更新,您可以将本地符号源与库版本同步,并绕过用户选择要引入的更新的面板。
返回
true
如果成功。
从库中取消链接本地引用
const success = symbol.unlinkFromLibrary()
您可以将符号源从其来源库中分离,并将其改为本地符号源。它将被添加到 Symbols
页面。
返回
true
如果成功。
符号实例
var SymbolInstance = require('sketch/dom').SymbolInstance
一个 符号 实例。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 符号实例对象的唯一 ID(不要与 symbolId 混淆)。 |
namestring | 符号实例的名称 |
parentGroup | 符号实例所在的组。 |
lockedboolean | 如果符号实例被锁定。 |
hiddenboolean | 如果符号实例被隐藏。 |
frame矩形 | 符号实例的框架。这是以相对于图层父级的坐标给出的。 |
flowFlow | 与符号关联的原型操作。 |
selectedboolean | 如果符号实例被选中。 |
exportFormatsExportFormat[] | 符号实例的导出格式。 |
transformobject | 应用于符号实例的转换。 |
transform.rotationnumber | 符号实例的顺时针旋转角度(度)。 |
transform.flippedHorizontallyboolean | 如果符号实例水平翻转。 |
transform.flippedVerticallyboolean | 如果符号实例垂直翻转。 |
styleStyle | 符号实例的样式。 |
symbolId字符串 | 实例及其主控共享的符号的唯一 ID。 |
masterSymbolMaster | 实例链接到的符号源。 |
overrides覆盖[] | 修改实例的覆盖数组。 |
创建一个新的符号实例
var instance = new SymbolInstance({
name: 'my symbol instance',
symbolId: symbolId,
})
从符号源创建一个新的符号实例
var instance = symbol.createNewInstance()
创建一个新的 符号实例,链接到此源,准备插入文档中。
返回
一个新的 SymbolInstance
分离实例
var group = instance.detach()
var group = instance.detach({
recursively: true,
})
替换包含此实例引用的符号副本的组。如果源不包含任何图层,则返回 null
,而不是插入空组
参数 | |
---|---|
optionsobject | 分离实例时要应用的选项。 |
options.recursively布尔值 | 如果也应该分离嵌套符号。默认为 false 。 |
返回
一个新的 组 或 null
设置覆盖值
instance.setOverrideValue(instance.overrides[0], 'overridden')
更改覆盖的值。
参数 | |
---|---|
override覆盖 - 必需 | 要更改的覆盖。 |
value字符串 / NSImage - 必需 | 要设置的覆盖值。可以是字符串或 NSImage 或 symbolId,具体取决于覆盖的类型。 |
返回
当前符号实例(如果您想将调用链接在一起,这很有用)。
使用智能布局调整大小
instance.resizeWithSmartLayout()
为了在实例中触发智能布局调整大小,例如更改覆盖值后,请调用 resizeWithSmartLayout()
方法。
热点
var HotSpot = require('sketch/dom').HotSpot
一个 Sketch 热点。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 热点的唯一 ID。 |
namestring | 热点的名称 |
parentGroup | 热点所在的组.. |
lockedboolean | 如果热点被锁定。 |
hiddenboolean | 如果热点被隐藏。 |
frameRectangle | 热点的框架。这是以相对于热点父级的坐标给出的。 |
selectedboolean | 如果热点被选中。 |
flowFlow | 与热点关联的原型操作。 |
创建一个新的热点
new HotSpot()
new HotSpot({
name: 'my name',
flow: {
target: artboard,
},
})
从图层创建一个新的热点
var hotspot = HotSpot.fromLayer(layer)
切片
var Slice = require('sketch/dom').Slice
一个 Sketch 切片。它是 图层 的实例,因此所有在那里定义的方法都可用。
属性 | |
---|---|
idstring | 切片的唯一 ID。 |
namestring | 切片的名称 |
parentGroup | 切片所在的组。 |
lockedboolean | 如果切片被锁定。 |
hiddenboolean | 如果切片被隐藏。 |
frameRectangle | 切片的框架。这是以相对于图层父级的坐标给出的。 |
selectedboolean | 如果切片被选中。 |
exportFormatsExportFormat[] | 切片的导出格式。 |
设置
var Settings = require('sketch/settings')
一组用于处理用户设置的函数。当用户关闭 Sketch 时,这些设置会保留。
获取插件设置
var setting = Settings.settingForKey('my-key')
返回与您的插件关联的给定键的设置值。
参数 | |
---|---|
key字符串 - 必需 | 要查找的设置。 |
返回
为给定键存储的设置。 undefined
,如果什么都没有。
设置插件设置
Settings.setSettingForKey('my-key', 0.1)
将与您的插件关联的给定键的设置值存储起来。
参数 | |
---|---|
key字符串 - 必需 | 要设置的设置。 |
value任何 - 必需 | 要设置的值。 |
获取 Sketch 设置
var setting = Settings.globalSettingForKey('my-key')
返回给定键的 Sketch 设置值。
参数 | |
---|---|
key字符串 - 必需 | 要查找的设置。 |
返回
为给定键存储的设置。 undefined
,如果什么都没有。
设置 Sketch 设置
Settings.setGlobalSettingForKey('my-key', 0.1)
将给定键的 Sketch 设置值存储起来。
参数 | |
---|---|
key字符串 - 必需 | 要设置的设置。 |
value任何 - 必需 | 要设置的值。 |
获取图层设置
var setting = Settings.layerSettingForKey(layer, 'my-key')
参数 | |
---|---|
layer图层 / 数据覆盖 / 覆盖 - 必需 | 存储设置的图层。 |
key字符串 - 必需 | 要查找的设置。 |
返回
为给定键存储的设置。 undefined
,如果什么都没有。
设置图层设置
Settings.setLayerSettingForKey(layer, 'my-key', 0.1)
将给定键的设置值存储在特定 图层 或 数据覆盖 或 覆盖 上。
参数 | |
---|---|
layer图层 / 数据覆盖 / 覆盖 - 必需 | 设置该设置的图层。 |
key字符串 - 必需 | 要设置的设置。 |
value任何 - 必需 | 要设置的值。 |
获取文档设置
var setting = Settings.documentSettingForKey(document, 'my-key')
返回特定文档上给定键的设置值。
参数 | 描述 |
---|---|
document文档 - 必需 | 存储设置的文档。 |
key字符串 - 必需 | 要查找的设置。 |
返回
为给定键存储的设置。 undefined
,如果什么都没有。
设置文档设置
Settings.setDocumentSettingForKey(document, 'my-key', 0.1)
将给定键的设置值存储在特定文档上。
参数 | |
---|---|
document文档 - 必需 | 设置该设置的文档。 |
key字符串 - 必需 | 要设置的设置。 |
value任何 - 必需 | 要设置的值。 |
获取会话变量
var myVar = Settings.sessionVariable('myVar')
返回在插件运行结束后保留但不会在 Sketch 关闭时保留的变量的值。当您希望在插件运行之间保持一个值时,这很有用。
参数 | |
---|---|
key字符串 - 必需 | 要查找的变量。 |
返回
为给定键存储的设置。 undefined
,如果什么都没有。
设置会话变量
Settings.setSessionVariable('myVar', 0.1)
存储在插件运行结束后保留但不会在 Sketch 关闭时保留的变量的值。当您希望在插件运行之间保持一个值时,这很有用。
参数 | |
---|---|
key字符串 - 必需 | 要设置的变量。 |
value任何 - 必需 | 要设置的值。 |
UI
var UI = require('sketch/ui')
一组用于显示一些用户界面的函数。这组有意很小。任何更复杂的 UI 应该由第三方库提供,不需要包含在核心库中。
显示消息
UI.message('Hello world!')
向用户显示一条小的临时消息。消息出现在选定文档的底部,并且会显示一小段时间。它应该包含一行文本。
参数 | |
---|---|
text字符串 - 必需 | 要显示的消息。 |
document文档 | 要在其中显示消息的文档。 |
显示警报
UI.alert('my title', 'Hello World!')
显示带有自定义标题和消息的警报。警报是模态的,因此它会一直存在,直到用户通过按下 OK 按钮将其关闭。
参数 | |
---|---|
title字符串 - 必需 | 警报的标题。 |
text字符串 - 必需 | 消息的文本。 |
获取用户输入
UI.getInputFromUser(
"What's your name?",
{
initialValue: 'Appleseed',
},
(err, value) => {
if (err) {
// most likely the user canceled the input
return
}
}
)
UI.getInputFromUser(
"What's your favorite design tool?",
{
type: UI.INPUT_TYPE.selection,
possibleValues: ['Sketch', 'Paper'],
},
(err, value) => {
if (err) {
// most likely the user canceled the input
return
}
}
)
显示一个简单的输入表,它会显示一条消息,并要求用户输入。
参数 | |
---|---|
message字符串 - 必需 | 要显示的提示消息。 |
optionsobject | 用于自定义输入表的选项。大多数选项取决于输入类型。 |
option.description字符串 | 用于更详细地描述输入的辅助文本。 |
option.type输入类型 | 输入的类型。 |
option.initialValue字符串 / 数字 | 输入的初始值。 |
option.possibleValues字符串[] - 选择时必需 | 用户可以做出的可能选择。仅用于 selection 输入。 |
option.numberOfLines数字 | 控制输入字段的高度。仅用于 string 输入。如果提供了一个值,它会将文本字段转换为可滚动的文本区域。 |
callbackfunction | 用户输入后调用的函数。如果用户取消输入,它会调用一个 Error ,以及一个 string 或 number ,具体取决于输入类型(或 undefined )。 |
UI.INPUT_TYPE
UI.INPUT_TYPE.selection
不同输入类型的枚举。
值 |
---|
string |
selection |
获取 Sketch 的主题
var theme = UI.getTheme()
if (theme === 'dark') {
// shows UI in dark theme
} else {
// shows UI in light theme
}
Sketch 有两个主题:light
和 dark
。如果您的插件有一些自定义 UI,也应该支持这两种主题。
数据提供者
var DataSupplier = require('sketch/data-supplier')
当您的插件提供一些数据时,请不要忘记在您的 manifest.json
中将 suppliesData
字段设置为 true
!
注册数据提供者
var DataSupplier = require('sketch/data-supplier')
// onStartup would be the handler for the `Startup` action defined in the manifest.json
export function onStartup() {
DataSupplier.registerDataSupplier(
'public.text',
'My Custom Data',
'SupplyKey'
)
}
使用名称和键注册一些数据。
参数 | |
---|---|
dataTypestring - required | 数据类型。允许的值为 public.text 、public.image 或 public.json (Sketch 71+ 可用)。 |
dataNamestring - required | 数据名称,用作数据的菜单项标题。 |
actionstring - required | 用户请求某些数据时将分派的 Action 的名称。请参阅 supplyData 。 |
Action 的上下文
当用户运行数据插件时,Sketch 会将请求转发到您的插件,并传递一个包含您履行请求所需的所有信息的 context.data
对象。
键 | |
---|---|
context.data.key |
用于标识供应请求的唯一键。您需要将其原封不动地传递给供应方法。 |
context.data.items |
我们想要获取某些数据的原生模型对象的数组。它可以是原生 Text、原生 Shape 或原生 DataOverride(当数据用于 Override 时的一个特殊对象)。 |
var util = require('util')
var sketch = require('sketch/dom')
var DataSupplier = require('sketch/data-supplier')
// onSupplyKeyNeeded would be the handler for
// the `SupplyKey` action defined in the manifest.json
export function onSupplyKeyNeeded(context) {
var count = context.data.items.count()
var key = context.data.key
var items = context.data.items
// you will often want to get wrapped objects instead
// of the native ones supplied in the context
var wrappedItems = util.toArray(items).map(sketch.fromNative)
}
提供数据
您可以使用两种不同的方法从您的插件提供数据:supplyData
(一次提供所有数据)和 supplyDataAtIndex
(一次提供一个数据)。
一次提供所有数据
var DataSupplier = require('sketch/data-supplier')
// onSupplyKeyNeeded would be the handler for
// the `SupplyKey` action defined in the manifest.json
export function onSupplyKeyNeeded(context) {
var count = context.data.items.count()
var key = context.data.key
var data = Array.from(Array(count)).map(i => 'foo')
DataSupplier.supplyData(key, data)
}
当提供动态数据的插件完成数据生成(可能是一个异步操作)后,它将使用数据键和数据调用此函数。
参数 | |
---|---|
key字符串 - 必需 | 应该等于 context.data.key |
datastring[] - required | 要提供的值列表。在 public.image 的情况下,字符串是图像的路径。 |
逐个提供数据
var util = require('util')
var sketch = require('sketch/dom')
var DataSupplier = require('sketch/data-supplier')
// onSupplyKeyNeeded would be the handler for
// the `SupplyKey` action defined in the manifest.json
export function onSupplyKeyNeeded(context) {
var key = context.data.key
var items = util.toArray(context.data.items).map(sketch.fromNative)
items.forEach((item, i) => {
// item is either a Layer or a DataOverride
DataSupplier.supplyDataAtIndex(key, 'foo', i)
})
}
当提供动态数据的插件完成数据项生成(可能是一个异步操作)后,它将使用数据键和数据项调用此函数。
参数 | |
---|---|
key字符串 - 必需 | 应该等于 context.data.key |
datumstring - required | 要提供的值。在 public.image 的情况下,字符串是图像的路径。在 public.json 的情况下,值是一个 JSON 对象。 |
indexnumber - required | 您要提供值的项目索引。 |
DataOverride
当项目是 Override 时,在 Action 上下文中传递的一个特殊对象,用于提供数据。
属性 | |
---|---|
idstring | 覆盖的名称。 |
overrideOverride | 其值将被提供的数据替换的覆盖。 |
symbolInstanceSymbolInstance | 覆盖所在的 Symbol 实例,其数据将被替换。 |
取消注册您的数据提供者
var DataSupplier = require('sketch/data-supplier')
// onShutdown would be the handler for the `Shutdown` action defined in the manifest.json
export function onShutdown() {
DataSupplier.deregisterDataSuppliers()
}
注册某样东西时,清理干净是个好习惯。这在您的插件更新时尤其有用:Shutdown
Action 将在 Startup
之前调用。它让您有机会干净地更新您的处理程序。
async
var fiber = require('sketch/async').createFiber()
longRunningTask(function(err, result) {
fiber.cleanup()
// you can continue working synchronously here
})
默认情况下,Sketch 会在脚本的调用堆栈为空时立即清理它。因此,如果您安排了一个异步任务,当任务返回时,您的脚本很可能已经被清理,并会导致 Sketch 崩溃。
fiber 是跟踪异步任务的一种方法。只要至少有一个 fiber 在运行,脚本就会保持活动状态。
要结束一个 fiber,请调用 fiber.cleanup()
。这将告诉 Sketch,如果其他 fiber 都不在运行,它可以回收脚本。
您可以通过设置回调来在 fiber 将要被清理时运行一个函数:fiber.onCleanup(function () {...})
。始终在这个函数中进行清理,而不是在调用 fiber.cleanup
之前进行:可能有一些情况,fiber 会被 Sketch 清理,因此您需要考虑到这一点。
export
var sketch = require('sketch/dom')
sketch.export(layer, {
formats: 'svg',
})
sketch.export([layer, layer2])
const options = { scales: '1, 2, 3', formats: 'png, jpg' }
sketch.export(page, options)
sketch.export(document.pages)
const options = { formats: 'json', output: false }
const sketchJSON = sketch.export(layer, options)
const options = { formats: 'png', output: false }
const buffer = sketch.export(layer, options)
使用提供的选项导出一个对象。
参数 | |
---|---|
objectToExportLayer / Layer[] / Page / Page[] | 要导出的对象。 |
optionsobject | 指示要使用哪些大小和格式等的选项。 |
options.outputstring | 这是放置所有导出文件的文件夹的路径(默认为 "~/Documents/Sketch Exports" )。如果为假值,则会立即返回对象的 data。 |
options.formatsstring | 要导出的格式的逗号分隔列表(png 、jpg 、webp 、tiff 、svg 、eps 、pdf 或 json )(默认为 "png" )。 |
options.scalesstring | 确定导出图层的大小的比例的逗号分隔列表(默认为 "1" )。 |
options[‘use-id-for-name’]boolean | 使用导出图像的 id 而不是其名称来命名导出图像(默认为 false )。 |
options[‘group-contents-only’]boolean | 仅导出组中包含的图层(默认为 false )。 |
options.overwritingboolean | 用新生成的文件覆盖现有文件(如果有)(默认为 false )。 |
options.trimmedboolean | 修剪导出图像周围的任何透明空间(将其留作 undefined 将与 Sketch 的行为匹配:修剪没有背景色的图层)。 |
options[‘save-for-web’]boolean | 如果导出 PNG,则从导出的文件中删除元数据(如色彩配置文件)(默认为 false )。 |
options.compactboolean | 如果导出 SVG,则使输出更紧凑(默认为 false )。 |
options[‘include-namespaces’]boolean | 如果导出 SVG,则包含额外的属性(默认为 false )。 |
options.progressiveboolean | 如果导出 JPG,则导出渐进式 JPEG(仅在导出到 jpeg 时使用)(默认为 false )。 |
options.compressionnumber | 如果导出 JPG,则用于 jpeg 的压缩级别(0 为完全压缩,1.0 为无压缩)(默认为 1.0 )。 |
该方法返回
undefined
如果options.output
为undefined
或字符串- 一个
Buffer
数组,如果objectToExport
是一个数组,并且options.formats
是一个图像格式 - 一个
Object
数组,如果objectToExport
是一个数组,并且options.formats
是json
- 一个
Buffer
,如果objectToExport
是一个单个项目,并且options.formats
是一个图像格式 - 一个
Object
,如果objectToExport
是一个单个项目,并且options.formats
是json
import
var sketch = require('sketch/dom')
const layer = sketch.createLayerFromData(buffer, 'svg')
const svgString =
'<svg width="200px" height="100px" viewBox="0 0 200 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><rect fill="#000000" x="0" y="0" width="200" height="100"></rect></svg>'
const group = sketch.createLayerFromData(svgString, 'svg')
将文件作为 Layer 导入。
参数 | |
---|---|
dataBuffer / string | 文件的 data。 |
typestring | 要导入的文件的类型。"svg" 、"pdf" 、"eps" 或 "bitmap" 。 |
该方法返回
find
var sketch = require('sketch/dom')
sketch.find('Shape')
// find all the Shapes in the current Document
sketch.find('Shape')
// find all the Layers in the first Page of the Document
sketch.find('*', document.pages[0])
// find all the Layers named "Layer-Name"
sketch.find('[name="Layer-Name"]')
// find all the Shape named "Layer-Name"
sketch.find('Shape, [name="Layer-Name"]')
⚠️ 此 API 处于预览阶段。它可能会根据社区的反馈在未来进行更改。
查找符合某些条件的图层。
参数 | |
---|---|
selectorstring - required | 要导出的对象。 |
scopeGroup / Document | 搜索范围。默认情况下,它是当前文档。 |