论坛帮助 |
社区圈子 |
日历事件 |
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, 09:07 | 只看该作者 #2 | ||
|
|||
中级会员
等级: 五袋长老
|
引用:
循环中间加上这一句 activeDocument=docs[i] 先激活再执行函数。 |
||
2022-10-25, 11:44 | 只看该作者 #3 | ||
|
|||
正式会员
等级: 小兄弟
|
大佬可否指点迷津一下,我完整的代码为 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:41 | 只看该作者 #6 | ||
|
|||
正式会员
等级: 小兄弟
|
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, 15:31 | 只看该作者 #7 | ||
|
|||
中级会员
等级: 五袋长老
|
引用:
不过我试了一下你的代码,只要加上我说的那一行激活文档就全部文档都能执行lock函数。只是你的这个函数只能锁定第一个层。 我不知道你的具体要求,简单写了一个锁定文档所有层的代码。 [隐藏内容]:
|
||
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢: |
wiimoo (2022-10-25)
|
2022-10-25, 15:35 | 只看该作者 #8 | ||
|
|||
中级会员
等级: 五袋长老
|
引用:
if判断后面如果只有一行语句,是不用加引号的 如果有多行语句一定要加引号,要不意义就不对了。 if (docs[i] instanceof File) activeDocument=docs[i] lock(); 这个是每次都执行lock();上面的activeDocument=docs[i]只有条件成立 才执行。 if (docs[i] instanceof File){ activeDocument=docs[i] lock(); }这个就是条件成立才执行,不成立不执行。 |
||
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢: |
wiimoo (2022-10-25)
|
2022-10-25, 17:52 | 只看该作者 #10 | ||
|
|||
正式会员
等级: 小兄弟
|
引用:
然后就是有一个疑惑的地方,在上面遍历文档时定义的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, 22:32 | 只看该作者 #11 | ||
|
|||
中级会员
等级: 五袋长老
|
引用:
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 . JavaScript 函数语法 函数就是包裹在花括号中的代码块,前面使用了关键词 function: function functionname() { // 执行代码 } 当调用该函数时,会执行函数内的代码。 调用 方法就是functionname() 不管函数写在代码那儿 ,只有调用函数才会执行。 你上面说的历史记录,我没仔细分析你代码,不清楚。 |
||
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢: |
wiimoo (2022-10-25)
|
2022-11-07, 11:41 | 只看该作者 #13 | ||
|
|||
正式会员
等级: 小兄弟
|
引用:
[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, 13:48 | 只看该作者 #14 | ||
|
|||
中级会员
等级: 五袋长老
|
引用:
代码:
var shuru = prompt("请输入执行代码","可执行代码"); try { if(shuru==""||shuru==null) { throw "您输入的执行代码有误,请重新开始!"; } if(isNaN(shuru)) { //throw "您输入的可执行代码未被识别,请重新开始!"; switch (shuru) { case "1R": f1(); break; case "2B": f2(); break; case "2W": f3(); break; case "1B": f4(); break; } } } catch(err) { alert("错误:"+err); throw "请点击确认,重新开始"; } function f1(){ alert("1R") } function f2(){ alert("2B") } function f3(){ alert("2W") } function f4(){ alert("1B") } 照我这个写就可以 |
||
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢: |
wiimoo (2022-11-07)
|