Javascript 尝试创建illustrator脚本以填充选定的颜色,并将其导出到样例组中的每种颜色

Javascript 尝试创建illustrator脚本以填充选定的颜色,并将其导出到样例组中的每种颜色,javascript,scripting,adobe,jsx,adobe-illustrator,Javascript,Scripting,Adobe,Jsx,Adobe Illustrator,正如标题所说,我已经拼凑并编写了我自己的代码到这个你在下面看到的怪物中。这是一个很好的三年,因为我做过任何编码,我的主要工作是平面设计,所以请原谅我的编码工作马虎。我试图完成的是让脚本在样例中运行,并将填充颜色应用于sreen上选择的内容,然后为每种颜色导出一个.png文件,文件名作为样例的颜色 除了没有应用填充颜色外,脚本的所有功能都正常工作。它将为样例组中的每种颜色导出甚至重命名文件,但它们都导出相同的默认颜色,因此我不相信选择正在填充。有人能告诉我我的代码有什么错误吗?如果我能让这段代码正

正如标题所说,我已经拼凑并编写了我自己的代码到这个你在下面看到的怪物中。这是一个很好的三年,因为我做过任何编码,我的主要工作是平面设计,所以请原谅我的编码工作马虎。我试图完成的是让脚本在样例中运行,并将填充颜色应用于sreen上选择的内容,然后为每种颜色导出一个.png文件,文件名作为样例的颜色

除了没有应用填充颜色外,脚本的所有功能都正常工作。它将为样例组中的每种颜色导出甚至重命名文件,但它们都导出相同的默认颜色,因此我不相信选择正在填充。有人能告诉我我的代码有什么错误吗?如果我能让这段代码正常工作,它将把不合理的工作量转化为更易于管理的工作量

谢谢

#target illustrator

//get a reference to the the current document

var doc = app.activeDocument;
var mySelection = doc.selection;
var swatches = doc.swatches;

//select a folder to save images into
var savePath = Folder.selectDialog( 'Please select a folder to export swatch images into', '~' );
//exported image dimensions
var width = 100;
var height = 100;
//PNG export options
var pngExportOpts = new ExportOptionsPNG24();
   pngExportOpts.antiAliasing = false;//keep it pixel perfect 
   pngExportOpts.artBoardClipping = false;//use the path's dimensions (setup above), ignore full document size
   pngExportOpts.saveAsHTML = false;
   pngExportOpts.transparency = true;//some swatches might have transparency


//go through the swatches


for(var i = 0; i < swatches.length; i++){
   //set the fill colour based on the current swatch colour

   mySelection.fillColor = swatches[i].color;

   //export png
   doc.exportFile( new File( savePath+ '/' + swatches[i].name + '.png'), ExportType.PNG24, pngExportOpts );
   //remove any previous paths (in case of transparent swatches)

   // doc.pathItems.removeAll();
}
#目标illustrator
//获取对当前文档的引用
var doc=app.activeDocument;
var mySelection=doc.selection;
var样本=doc.swatches;
//选择要将图像保存到的文件夹
var savePath=Folder.selectDialog('请选择要将样例图像导出到的文件夹','~');
//导出的图像尺寸
var宽度=100;
var高度=100;
//PNG导出选项
var pngExportOpts=新的导出选项png24();
pngExportOpts.antiAliasing=false//保持像素完美
pngExportOpts.artBoardClipping=false//使用路径的尺寸(上面的设置),忽略完整文档大小
pngExportOpts.saveAsHTML=false;
pngExportOpts.transparency=true//某些样例可能具有透明度
//检查样本
对于(变量i=0;i
我没有试过,但我看到你做了
mySelection.fillColor=…
。建议
mySelection
将是一个数组。你能试着用
替换这一行吗(var j=0;jHi,感谢您的帮助,但它似乎仍然无法按预期工作。只是尝试了一下,它可以与矩形一起工作。您能告诉我们您有什么类型的选择吗?好的,我知道问题出在这里,但仍然不确定原因。它适用于单个形状,但我尝试的是一个由ma组成的复合路径ny形状。所有选择都是相同的,技术上也是相同的形状,所以我不明白为什么它适用于一个形状,但如果我复制该形状并同时选择它们,那么它只会导出所有相同的颜色,而无需通过列表尝试使用多个形状,得到以下结果:(根据我上面提出的修改脚本)我没有试过,但我看到你做了
mySelection.fillColor=…
。建议
mySelection
将是一个数组。你能试着用
替换这一行吗(var j=0;jHi,感谢您的帮助,但它似乎仍然无法按预期工作。只是尝试了一下,它可以与矩形一起工作。您能告诉我们您有什么类型的选择吗?好的,我知道问题出在这里,但仍然不确定原因。它适用于单个形状,但我尝试的是一个由ma组成的复合路径ny形状。所有选择都是相同的,技术上也是相同的形状,所以我不明白为什么它适用于一个形状,但如果我复制该形状并同时选择它们,那么它只会导出所有相同的颜色,而无需通过列表尝试使用多个形状,得到以下结果:(根据我上面提出的修改脚本)