搜索
主题
    模型
      图层
        API
          API 参考

          简介

          API Layers

          这是一个 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()
          

          可导入对象与文档相关联,因此导入它将把它导入到所述文档中。

          返回

          如果对象的 objectTypeSymbol,它将返回一个 符号源,它将与库关联(意味着如果库更新,从源创建的 符号实例 也会更新)。

          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,
            },
          ]
          

          表示填充的对象。 colorgradientpattern 将始终定义,而不管填充的类型是什么。

          属性  
          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 InstanceSymbol Sourceoverrides 时返回。覆盖在实例注入文档之前不可用。

          属性  
          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 导出的尺寸。有效值为 2x100w100width100px300h300height

          有效的导出文件格式

          • 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, forEachreduce,只需将参数转发给它的图层。这些只是方便的方法,可以避免每次都获取图层。

          清除选择

          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 将表示矩形坐标的图层。

          可以省略 fromto(但不能同时省略)以更改相对于页面坐标的坐标系。

          获取一个 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
          

          给定对 SymbolMasterGroup 图层的引用,使用 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,以及一个 stringnumber,具体取决于输入类型(或 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 有两个主题:lightdark。如果您的插件有一些自定义 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.textpublic.imagepublic.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 要导出的格式的逗号分隔列表(pngjpgwebptiffsvgepspdfjson)(默认为 "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.outputundefined 或字符串
          • 一个 Buffer 数组,如果 objectToExport 是一个数组,并且 options.formats 是一个图像格式
          • 一个 Object 数组,如果 objectToExport 是一个数组,并且 options.formatsjson
          • 一个 Buffer,如果 objectToExport 是一个单个项目,并且 options.formats 是一个图像格式
          • 一个 Object,如果 objectToExport 是一个单个项目,并且 options.formatsjson

          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"

          该方法返回

          • 一个 Group,如果类型为 svg,或者类型为 pdf 并且 pdf 只有一个页面
          • 一个 Image,如果类型为 bitmap
          • 一个 Page,如果类型为 pdf 并且 pdf 有多个页面,或者类型为 eps

          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 搜索范围。默认情况下,它是当前文档。