Dav*_*man 8 extendscript photoshop-script
我正在使用ExtendScript在JavaScript中处理Photoshop脚本.我的脚本允许一些用户输入,我想在使用之间保存它.也就是说,我正在寻找一种方法来保存特定键下的简单字符串或数值,以便我能够在后续使用脚本时访问它.简单地说,我想保存我的脚本的首选项.我怎么做?
更好的是能够在每个文档的基础上保存至少一些首选项.那可能吗?也就是说,我可以用文档存储任意位数据吗?
J. *_*son 11
您可以使用put/get自定义选项来保存在Photoshop启动时保留的首选项参数:
const kMyFlag = app.stringIDToTypeID( "myFlag" );
const kMyNumber = app.stringIDToTypeID( "myNumber" );
const kMySettings = "mySettings";
function saveSettings()
{
var desc = new ActionDescriptor();
desc.putBoolean(kMyFlag, true);
desc.putInteger(kMyNumber, 42);
// "true" means setting persists across Photoshop launches.
app.putCustomOptions( kMySettings, desc, true );
}
function getSettings()
{
var desc = app.getCustomOptions( kMySettings );
return [desc.getBoolean( kMyFlag ), desc.getInteger( kMyNumber )];
}
Run Code Online (Sandbox Code Playgroud)
您有一些选择。您可以创建一个文本文件并使用File对象进行写入:
var prefs = new File("~/desktop/prefs.txt");
prefs.open("w"); // or "a" to append
prefs.writeln("user:lenny;favorite_color:ff6600;likes:sunsets;");
Run Code Online (Sandbox Code Playgroud)
...如果您希望将偏好设置与脚本本身联系在一起。
如果您希望按文档进行首选项,则可以将字符串写入您正在使用的文件的元数据字段之一Document.info(使用“指令”字段,但您可以使用任何可写字段):
var doc = app.activeDocument;
doc.info.instructions = "user:lenny;favorite_color:ff6600;likes:sunsets;";
//alert(doc.info.instructions); // see, it works!
Run Code Online (Sandbox Code Playgroud)
至于如何实际格式化字符串,您可以像一个简单的配置文件一样进行操作,或者,如果您具有复杂的用户首选项对象,则可以使用该XML对象来构造和序列化它。JSON非常适合此操作,但是不幸的是,Extendscript中没有JSON对象。
| 归档时间: |
|
| 查看次数: |
3537 次 |
| 最近记录: |