3

在草图文档中指出,点和大括号符号可以相互混合。它甚至是一个可用的示例

[[context.document currentPage] deselectAllLayers];

不幸的是,如果通过“运行自定义脚本”命令执行,此代码在草图中不起作用并产生错误:

SyntaxError: Unexpected identifier 'currentPage'. Expected either a closing ']' or a ',' following an array element..
Plugin “untitled script”, line 2.
»   [context.document currentPage]; «Error in command untitled script Script at path (null) does not contain a handler function named: onRun
Script executed in 0.023666s

这可以通过添加额外的(and来避免)

[[(context.document) currentPage] deselectAllLayers];

为什么会发生这种情况?是否有任何可用的文档如何准确地混合大括号和点符号?是一些错误还是预期的行为?

4

1 回答 1

2

在我看来这是一个错误,但在 Sketch 文档中。除了您展示的这种情况,我找不到任何其他示例,其中点和大括号符号在同一语句中一起使用,没有括号。

例如,有关选择的文档页面告诉您将使用以下代码取消选择所有内容:

var doc = context.document
[[doc currentPage] deselectAllLayers]

点击此链接并在清除选择标题下查看:http: //bohemiancoding.com/sketch/support/developer/02-common-tasks/01.html

甚至他们的示例插件也不会混合两种符号,如您在此处看到的:https ://github.com/BohemianCoding/ExampleSketchPlugins/blob/master/Hello%20World/Hello%20World.sketchplugin/Contents/Sketch/script.cocoascript .

在该示例中,context.document在大括号中使用之前,还会将其分配给新变量。

于 2015-08-30T23:15:50.350 回答