◆- Adobe插件与脚本区 主要讨论Adobe插件开发与软件脚本撰写

发表新主题 关闭主题
 
查看全部 主题工具
旧 2022-10-25, 09:07     #1
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
默认   



引用:
作者: wiimoo 查看帖子
求助大佬,ps脚本中,如何对PS已打开的所有文档,执行 function lock;

下面代码,测试的时候,可以运行,但是只会对当前激活文档运行 function,并不会自动执行下一个PS已打开的文档,求助大佬~

app.bringToFront()

var docs = app.documents;

for(var i=0; i<docs.length; i++)
{
if (docs[i] instanceof File)

lock();

}

//alert("图片处理完毕","提示:");...

循环中间加上这一句
activeDocument=docs[i]
先激活再执行函数。
xueyuhong958 当前离线  
旧 2022-10-25, 15:31     #2
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
默认

引用:
作者: wiimoo 查看帖子
app.bringToFront()

// 定义一个变量[docs],它是一个数组,用来存储Photoshop当前已打开的所有文档。
var docs = app.documents;
// 定义一个变量[message],它的默认值为空。这个变量将在后面的代码中起到保存所有文档尺寸信息的作用。

app.activeDocument.suspendHistory("已锁定", "lock()");


for(var i=0; i<docs.length; i++)
{

if (docs[i] instance...
我都有点看不明白你的代码,英语不好。

不过我试了一下你的代码,只要加上我说的那一行激活文档就全部文档都能执行lock函数。只是你的这个函数只能锁定第一个层。


我不知道你的具体要求,简单写了一个锁定文档所有层的代码。
[隐藏内容]:
您需要花费 5 金币购买,才能查看该隐藏内容。 [看谁购买]
xueyuhong958 当前离线  
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢:
wiimoo (2022-10-25)
旧 2022-10-25, 15:35     #3
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
默认

引用:
作者: MaFia丶枫语 查看帖子
for(var i=0; i<docs.length; i++)
{
if (docs[i] instanceof File)
activeDocument=docs[i]
lock();

}
2楼大佬意思是循环这么写
温馨提示:
if判断后面如果只有一行语句,是不用加引号的
如果有多行语句一定要加引号,要不意义就不对了。

if (docs[i] instanceof File)
activeDocument=docs[i]
lock();
这个是每次都执行lock();上面的activeDocument=docs[i]只有条件成立 才执行。


if (docs[i] instanceof File){
activeDocument=docs[i]
lock();
}这个就是条件成立才执行,不成立不执行。
xueyuhong958 当前离线  
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢:
wiimoo (2022-10-25)
旧 2022-10-25, 22:32     #4
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
默认

引用:
作者: wiimoo 查看帖子
感谢大佬,已购买,但是你写的代码就可以,我自己的那个function,为何就只锁定一个图层呢,还有一点想请问您一下,为何 app.activeDocument.suspendHistory("已锁定", "lock()"); 这里定义了历史记录,运行您上传那个脚本之后,还是会显示遍历图层的锁定历史记录呢?

然后就是有一个疑惑的地方,在上面遍历文档时定义的function 这里

for(var i=0; i<docs.length; i++)
{
activeDocument=docs[i]

lock();//这里定义了运行 function lock
...
JavaScript 函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。
.
JavaScript 函数语法
函数就是包裹在花括号中的代码块,前面使用了关键词 function:

function functionname()
{
// 执行代码
}
当调用该函数时,会执行函数内的代码。

调用 方法就是functionname()
不管函数写在代码那儿 ,只有调用函数才会执行。

你上面说的历史记录,我没仔细分析你代码,不清楚。
xueyuhong958 当前离线  
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢:
wiimoo (2022-10-25)
旧 2022-11-07, 13:48     #5
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
xueyuhong958 xueyuhong958 当前离线
中级会员
等级: 五袋长老
级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时级别:42 | 在线时长:1986小时 | 升级还需:35小时
 
Uid: 274036
注册日期: 2011-12-27, 09:27
帖子: 784
感谢: 19
151 个帖子获得 298 次感谢
现金: 589金币
资产: 629金币
声望: 10 xueyuhong958 向着好的方向发展
默认

引用:
作者: wiimoo 查看帖子
————————————————————————————————————————————————

xueyuhong958 大佬,我遇到了新的问题,希望得到你的指点与帮助

代码内容为:

var shuru = prompt("请输入执行代码","可执行代码");
try
{
if(shuru==""||shuru==null)
{
throw "您输入的执行代码有误,请重新开始!";
}
if(isNaN(shuru))
{
throw "您输入的可执行代码未被识别,请重新开...
代码:
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 当前离线  
右列会员因为此帖价值甚高向 xueyuhong958 表示感谢:
wiimoo (2022-11-07)
发表新主题 关闭主题


发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子

论坛启用 vB 代码
论坛启用 表情图标
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


律师声明:本站内容,均具有版权,未经书面授权,禁止转载,严禁镜像,违者承担一切后果!
论坛广告报价   广告联系及办理企业会员服务QQ:57880388 站务管理QQ:35529388


所有时间均为 +8, 现在的时间是 2025-01-04 14:19.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
 
Copyright © 2004-2022