Javascript 草图插件:如何以编程方式使图层可导出?
因此,在中,可以将图层/组标记为可导出Javascript 草图插件:如何以编程方式使图层可导出?,javascript,plugins,sketch-3,cocoascript,Javascript,Plugins,Sketch 3,Cocoascript,因此,在中,可以将图层/组标记为可导出 然后层/组可以导出为.png/.svg/.pdf等。我最近尝试制作一个草图插件,需要将层/组标记为可从代码导出。代码中的层用MSLayer表示,组为MSLayerGroup。草图文档还不够成熟,所以我用来提取应用程序中使用的所有标题。我一直在寻找一种似乎能完成我工作的方法,但已经好几天了,我仍然运气不佳。在这方面,有人能帮我吗?草图支持切片和导出到图像。您可以使用-(void)saveArtboardOrSlice:(id)arg1到文件:(id)arg
然后层/组可以导出为.png/.svg/.pdf等。我最近尝试制作一个草图插件,需要将层/组标记为可从代码导出。代码中的层用
MSLayer
表示,组为MSLayerGroup
。草图文档还不够成熟,所以我用来提取应用程序中使用的所有标题。我一直在寻找一种似乎能完成我工作的方法,但已经好几天了,我仍然运气不佳。在这方面,有人能帮我吗?草图支持切片和导出到图像。您可以使用-(void)saveArtboardOrSlice:(id)arg1到文件:(id)arg2代码>
MSDocument的方法
这几乎就是如何做到这一点
var loopLayerChildren = [[layerToExport children] objectEnumerator],
rect = [MSSliceTrimming trimmedRectForSlice:layer],
useSliceLayer = false,
exportFilePath,
slice;
// Check for MSSliceLayer and overwrite the rect if present
while (layerChild = [loopLayerChildren nextObject]) {
if ([layerChild class] == 'MSSliceLayer') {
rect = [MSSliceTrimming trimmedRectForSlice:layerChild];
useSliceLayer = true;
}
}
slice = [MSExportRequest requestWithRect:rect scale:1];
if (!useSliceLayer) {
slice.shouldTrim = true;
}
// export to image file
[(this.document) saveArtboardOrSlice: slice toFile:exportFilePath];
来自@GeertWill's的参考资料。谢谢,我会尽快查看并回复您。