论坛帮助 |
社区圈子 |
日历事件 |
2022-10-24, 23:13 | #1 | ||
|
|||
正式会员
等级: 小兄弟
|
下面代码,测试的时候,可以运行,但是只会对当前激活文档运行 function,并不会自动执行下一个PS已打开的文档,求助大佬~ app.bringToFront() var docs = app.documents; for(var i=0; i<docs.length; i++) { if (docs[i] instanceof File) lock(); } //alert("图片处理完毕","提示:"); function lock() { } |
||
2022-10-25, 11:44 | #2 | ||
|
|||
正式会员
等级: 小兄弟
|
大佬可否指点迷津一下,我完整的代码为 app.bringToFront() var docs = app.documents; for(var i=0; i<docs.length; i++) { if (docs[i] instanceof File) lock(); } //alert("图片处理完毕","提示:"); function lock() { var d = new ActionDescriptor(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("null"), r); var d1 = new ActionDescriptor(); d1.putBoolean(stringIDToTypeID("protectAll"), true); d.putObject(stringIDToTypeID("layerLocking"), stringIDToTypeID("layerLocking"), d1); executeAction(stringIDToTypeID("applyLocking"), d, DialogModes.NO); } 目的,是想遍历当前打开的所有文档,并遍历每一个图层,进行上锁的操作,上锁就是引用的function lock(); 当前的问题是,只会对当前文档上锁,且没有遍历图层的代码,您可否帮我修改一下,上传,设置金币,我购买~ |
||
2022-10-25, 14:35 | #3 | ||
|
|||
正式会员
等级: 小兄弟
|
|
||
2022-10-25, 14:41 | #4 | ||
|
|||
正式会员
等级: 小兄弟
|
app.bringToFront() // 定义一个变量[docs],它是一个数组,用来存储Photoshop当前已打开的所有文档。 var docs = app.documents; // 定义一个变量[message],它的默认值为空。这个变量将在后面的代码中起到保存所有文档尺寸信息的作用。 app.activeDocument.suspendHistory("已锁定", "lock()"); for(var i=0; i<docs.length; i++) { if (docs[i] instanceof File) lock(); } //alert("图片处理完毕","提示:"); function lock() { var d = new ActionDescriptor(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("null"), r); var d1 = new ActionDescriptor(); d1.putBoolean(stringIDToTypeID("protectAll"), true); d.putObject(stringIDToTypeID("layerLocking"), stringIDToTypeID("layerLocking"), d1); executeAction(stringIDToTypeID("applyLocking"), d, DialogModes.NO); } 大佬,付费求修改~ 遍历PS已打开的所有文档和所有图层,进行function lock~ |
||
2022-10-25, 17:52 | #5 | ||
|
|||
正式会员
等级: 小兄弟
|
引用:
然后就是有一个疑惑的地方,在上面遍历文档时定义的function 这里 for(var i=0; i<docs.length; i++) { activeDocument=docs[i] lock();//这里定义了运行 function lock 第二个(); } 已经运行了function lock, 那么下面的 /*这里是function lock的内容 function lock(){ 内容 } */ /* function 第二个(){ 内容 } */ 假如下面还有多个function 功能 那么是否每一个function都还会再运行一次呢? 还是说只运行 上面 遍历文档时 定义的 activeDocument=docs[i] 下面的function ? 求大佬指点迷津~谢谢~再次感谢~ |
||
2022-10-25, 23:16 | #6 | ||
|
|||
正式会员
等级: 小兄弟
|
|
||
2022-11-07, 11:41 | #7 | ||
|
|||
正式会员
等级: 小兄弟
|
引用:
[MENTION=274036]xueyuhong958[/MENTION] 大佬,我遇到了新的问题,希望得到你的指点与帮助 代码内容为: var shuru = prompt("请输入执行代码","可执行代码"); try { if(shuru==""||shuru==null) { throw "您输入的执行代码有误,请重新开始!"; } if(isNaN(shuru)) { throw "您输入的可执行代码未被识别,请重新开始!"; } } catch(err) { alert("错误:"+err); throw "请点击确认,重新开始"; } 弹出一个prompt对话框,我希望在里面输入比如:“1R”“2B”“2W”“1B”这样的代码,可以执行,指定的 function 1R function 2B这样的功能,应该怎么写,付费求助,您可以出售附件。 |
||
2022-11-07, 14:23 | #8 | ||
|
|||
正式会员
等级: 小兄弟
|
|
||