JavaScript脚本参考是基于DOM文档对象模型的资料
本参考资料描述了Adobe®Photoshop®CC®JavaScriptTMtype库中的对象和方法。一个配套的文档,
Photoshop CC脚本指南,描述了基本的脚本概念和Photoshop对象模型。本文档提供了Photoshop对
象模型的参考细节,以及关于javascript特定特性的附加信息。
Adobe Photoshop CC使用了ExtendScript,这是Adobe对JavaScript的扩展实现。有关更多信息,请参
见adobephotoshopcc.com中的JavaScript支持。
本书包括以下章节:
●本介绍介绍了adobephotoshopcc中的脚本支持,并列出了对自上次发布以来的JavaScript接口。
● JavaScript对象引用,为所有Photoshop DOM对象提供完整的引用命令。
●脚本常量,列出Photoshop类型库中使用的所有枚举。
要使JavaScript文件被Photoshop识别为有效的脚本文件,它必须使用a.js或a.jsx扩展。
在Mac OS上,脚本使用两个扩展函数的方式没有区别。在Windows上,如果脚本文件是在Photoshop
中打开的,那么使用.js和.jsx没有区别。但是,如果脚本是通过双击启动的,则扩展名为.js的脚本是
使用Microsoft JScript引擎解释,无法启动adobephotoshopcc。最好使用.jsx扩展,因为它使用
ExtendScript引擎解释脚本。
所有Adobe Creative Cloud应用程序,包括Adobe Photoshop CC,都使用ExtendScript,这是Adobe对
JavaScript的扩展实现。扩展脚本文件由。 jsx扩展。 ExtendScript提供了所有标准的JavaScript特性,
以及附加的特性和实用程序,比如:
●调试环境(ExtendScript工具包)
●本地化工具
●允许组合脚本并将其指向特定应用程序的工具
●独立于平台的文件和文件夹表示
许多JavaScript对象和方法使用ExtendScript中定义的对象,比如File对象、 Folder对象和UnitValue对
象。因此,使用。脚本文件的jsx扩展名更可取。
有关这些特性和其他特性的详细信息,请参阅javascript工具指南。本文档在以下地点安装了创造性
云应用程序:
● In Windows:
C:\Program Files\Adobe\Adobe Utilities\ExtendScript Toolkit CC\SDK
● In Mac OS:
Applications/Utilities/Adobe Utilities/ExtendScript Toolkit CC/SDK
本文档和ExtendScript Tookit的最新版本也可以从Adobe下载开发中心,http://www.adobe.com/devnet/.
1.执行脚本
adobephotoshopcc界面包含一个Scripts菜单(文件>脚本),它提供了对java脚本的快速、简便访问。
脚本可以直接作为菜单项列出,当您选择它们时运行它们,或者您可以导航到并运行文件系统中的
任何JavaScript。
如果adobephotoshopcc在执行脚本时遇到错误,它将显示错误消息。
2.安装脚本
要在Scripts菜单中安装JavaScript,请将其放入Scripts文件夹(Photoshop CC/Presets/ Scripts)。 “脚本”文
件夹中脚本的名称将显示在脚本菜单。可以在scripts菜单中安装任意数量的脚本。
运行adobe photoshop cc时添加到Scripts文件夹中的脚本将不会出现在脚本中菜单,直到下一次启动应用程序。
在scripts文件夹和子文件夹中找到的所有脚本都显示在File> scripts的顶层菜单。子文件夹的添加不会向Scripts菜单中添加层次结构。
3.执行其他脚本
通过(Files> Scripts > Browse)允许您执行Scripts文件夹中没有安装的脚本。还可以使用Browse选择上
次启动应用程序后安装在scripts文件夹中的脚本。
选择Browse将显示一个文件浏览器对话框,该对话框允许您选择要执行的脚本文件。只有
.js或.jsx文件显示在browse对话框中。当您选择一个脚本文件时,它将以已安装脚本的相同方式执
行。
4.启动脚本
在启动时, adobe photoshop cc将执行在启动文件夹中找到的所有.jsx文件。
●在Windows上,用户定义脚本的启动文件夹是:
C:\Program Files\Common Files\Adobe\Startup Scripts CC\Adobe Photoshop
●在Mac OS上,用户定义脚本的启动文件夹为::
~/Library/Application Support/Adobe/Startup Scripts CC/Adobe Photoshop
如果一个脚本只打算由adobe photoshop cc执行,它必须包含以下代码:
if( BridgeTalk.appName == "photoshop" ) {
//continue executing script
}
有关更多细节,请参见javascript工具指南。
5.对象模型的使用和命名
JavaScript API遵循JavaScript命名约定,即所有类(对象类型)都以大写字母开头,并具有混合大小写。
通常,在JavaScript中,您使用新的操作符实例化类:
new ClassName();
然而,在Photoshop对象模型中,通常没有必要这样做。主要对象类型被回收到集合类中;例如,文
档集合对象中包含文档对象列表。然后,通过对象层次结构中容器中的相应集合属性访问集合对
象。
例如,所有打开文档的集合都包含在顶级应用程序对象中。你可以通过全局变量应用程序访问它,
或者直接在顶层引用它的属性:
app.documents[0] // get the first loaded documented
documents[0] // this is the same
集合属性具有与集合对象相同的名称,但以小写字母开头。例如,一个 Document 包含 LayerSets,
aLayerSet包含ArtLayers。要访问集合中的一个ArtLayer对象:
var myLayer = activeDocument.layerSets[0].artLayers[0];
在本例中,可以将集合视为数组,这对于迭代非常有用。它们还提供了创建所包含对象的方法,并
按名称访问它们:
var newLayer = activeDocument.artLayers.add(); // Create a new ArtLayer object
newLayer.name = "My Layer"; // name it for later reference
...
var layerRef = activeDocument.artLayers.getByName("My Layer");
一些对象,比如应用程序中包含的字体对象。字体集合是由应用程序创建的,而不是由脚本创建
的。
您的脚本确实使用JavaScript new操作符来创建helper对象,比如那些封装了一组以特定格式打开或
保存文档的选项的对象:
var opts = new PDFOpenOptions();
opts.page = 10;
app.open(myPDFFile, opts);
Photoshop对象(Adobe®Photoshop®CC的JavaScript类型库)在本章中以表格形式出现。给出了几个对
象模型类的示例代码,以帮助说明对象类的语法和用法。
1.对象描述
对象属性和方法在每个对象的单独表中进行描述。以下部分描述这些描述中使用的约定。
2.属性符号
对象的属性表列出了以下内容:
●定义在每个对象中的属性。
●每个属性的值类型。
当值类型是常量或其他对象时,值是指向该对象清单的超文本链接常数或对象。
●属性的输入状态:只读或读写。
●解释该属性功能的描述。
属性 | 值类型 | 描述 |
displayDialogs | DialogModes | 读写。应用程序的对话模式,它控制运行脚本时应该显示什 么类型的对话框。 |
对于常量,如示例中的displayDialogs模式,单击链接可转到显示允许值的表。常量由对象表示,
允许的值是这些对象的属性。以ConstantName.VALUE的形式指定一个常量值。例如:
app.displayDialogs = DialogModes.ERROR;
3.方法符号
对象的方法表列出了以下内容:
●方法名。
●参数列表。
●参数值类型,行上对应每个参数。
●返回值类型
●描述方法的功能,如果需要,进一步描述参数。
方法 | 参数类型 | 返回类型 | 描述 |
crop (bounds [, angle] [, width] [, height]) |
array of 4 UnitValue number UnitValue UnitValue |
Crops裁剪. bounds参数是裁剪后区域坐 标外的一个数组, [left,top, right, bottom]. |
当参数类型或返回值是常量或其他对象时,该值是指向该常量或对象列表的超文本链接。
参数可以是必需的,也可以是可选的。表中可选参数用方括号表示([])。在本例中,需要第一个参数
bounds。其余参数都是可选的。
您必须为每个必需的参数传递一个值。如果没有剩余的值要传递,可以省略可选参数;但是,如果您
希望为任何不是最后指定的可选参数使用默认值,请将undefined作为占位符传递。您必须按照列出
的顺序输入值,以便JavaScript编译器知道您输入的是哪个值。
例如,下面只传递所需的参数(使用以前定义的变量作为边界区域):
app.activeDocument.crop( myRegion );
下面跳过角度参数,指定宽度值,并省略最后的高度值:
var myWidth = new UnitValue( "500 pixels" );
app.executeAction( myRegion,undefined,myWidth );
其他对象不再具体介绍,详情请查看脚本文档
红色为需要重点掌握的对象