【问题标题】:Photoshop(CC) Script that runs the action after the alert box appears出现警告框后运行操作的 Photoshop(CC) 脚本
【发布时间】:2019-03-05 23:48:51
【问题描述】:
我对 Photoshop (CC) 中的流程自动化有疑问,希望您能帮助我,或引导我去寻找答案。
我在 PS 中创建了自己的动作来处理照片并添加各种图形元素(我称之为工作:动作 A)。
我有很多照片所以
我使用“批处理序列...”运行操作。
批处理序列打开照片并启动“操作 A”。一段时间后会出现警告框。
然后我可以选择“停止”和“继续”。
此时我需要在对话框出现时激活第二个动作(我称之为工作:动作 B)
我在各种论坛中寻找解决方案,发现只有这个:
https://forums.adobe.com/thread/1218184
请帮忙。
我问候亚瑟
【问题讨论】:
标签:
javascript
automation
photoshop-script
cc
【解决方案1】:
您可以将您的操作转换为脚本,然后使用任何条件语句来决定下一步要做什么。
例如,假设您的操作 A 有 10 个步骤,并且您希望第 10 个步骤成为决定下一步做什么的条件。您可以使用 xbytor 的 ActionToScript 脚本 (working link) 将您的操作转换为脚本,在生成的 JSX 文件中,您会发现所有操作步骤都转换为 javascript 代码。您可以使用此文件而不是您的操作 A,或者您可以只使用您需要的部分(在我的示例中为第 10 步),将前面的所有 9 个步骤保留为操作步骤,并将脚本作为最后一步插入。
然后在脚本中你可以使用try..catch 或if 语句来决定播放哪个动作,例如这段代码是从动作转换的命令“羽毛选择”。它会尝试播放,如果一切正常,接下来将播放来自My Actions 集的Action B。如果遇到错误(例如没有选择羽化),将播放Action C
function cTID(s){return app.charIDToTypeID(s);};
function sTID(s){return app.stringIDToTypeID(s);};
try
{
var desc2285 = new ActionDescriptor();
desc2285.putUnitDouble(cTID('Rds '), cTID('#Pxl'), 5.000000);
desc2285.putBoolean(sTID('selectionModifyEffectAtCanvasBounds'), false);
executeAction(cTID('Fthr'), desc2285, DialogModes.NO);
app.doAction("Action B", "My Actions");
}
catch (e)
{
app.doAction("Action C", "My Actions");
}