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

发表新主题 关闭主题
 
只看楼主 主题工具
旧 2017-04-18, 08:43     #1
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
默认 老师们,求助,文本移动后,求更新后文本的坐标。   



老师们,求助,文本移动后,求更新后文本的坐标。
因为有时候移动后的坐标不准确,不知道哪里出现问题了。


详细问题如2图,
好多文本,改变顺序后,我使用js读取left,top的坐标,再使用数组进行大小排列,结果出现了混排。

请老师们解惑,谢谢。
上传的图像
文件类型: png TIM截图20170418083917.png (6.7 KB, 1 次查看)
文件类型: png 2222222222222222222.png (15.9 KB, 1 次查看)
xpmycpc 当前离线  
旧 2017-04-18, 10:00   只看该作者   #2
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
默认

用geometricBounds[0]geometricBounds[1]geometricBounds[2]geometricBounds[4]呢
wudan 当前离线  
右列会员因为此帖价值甚高向 wudan 表示感谢:
xpmycpc (2017-04-18)
旧 2017-04-18, 10:54   只看该作者   #3
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
默认

引用:
作者: wudan 查看帖子
用geometricBounds[0]geometricBounds[1]geometricBounds[2]geometricBounds[4]呢
老师,好像没有区别,是否能写个文本排列的js代码?
xpmycpc 当前离线  
旧 2017-04-18, 12:49   只看该作者   #4
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
默认

这个你要找大师了,我只是个小朋友,要搞很久,大师们都是分分钟的事
wudan 当前离线  
旧 2017-04-18, 21:51   只看该作者   #5
animalia animalia 当前离线
正式会员
等级: 四袋长老
级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时
 
Uid: 68402
注册日期: 2008-04-19, 12:32
帖子: 299
感谢: 10
137 个帖子获得 356 次感谢
现金: 88金币
资产: 88金币
声望: 12 animalia 向着好的方向发展
animalia animalia 当前离线
正式会员
等级: 四袋长老
级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时级别:46 | 在线时长:2304小时 | 升级还需:93小时
 
Uid: 68402
注册日期: 2008-04-19, 12:32
帖子: 299
感谢: 10
137 个帖子获得 356 次感谢
现金: 88金币
资产: 88金币
声望: 12 animalia 向着好的方向发展
默认

请秀出你现有的代码,以及你想要得到的结果
animalia 当前离线  
右列会员因为此帖价值甚高向 animalia 表示感谢:
xpmycpc (2017-04-19)
旧 2017-04-19, 07:54   只看该作者   #6
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
默认 老师们,帮忙检查脚本错误。有时候会出现文本错排。

代码:
//~ 原理:
//~ 取出真实坐标a-->复制(不是赋值)该数组进行排序b-->计算出最大数值并加上偏移建立需要的数据c
//~ -->b与c进行排序,使位置产生对应关系-->进行a与b的对比,相同建立二级数组d([a,c])加入到最后的位置数组d中
//~ -->取值从d中。
//~ 关键问题:
//~ 1.数组最大值,排序sort(小-->大),复制.slice()与赋值的不同(赋值会改变原数组)
//~ 2.使用alert,记录跟踪数据,分析得出,数组赋值与复制的不同
//~ 3.二级循环的初步使用
var doc=app.activeDocument;
var sel=doc.selection;
var j=sel.length;
var left=sel[0].position;
var top=[];//真实数据
var top_max=0;
var temp=[];//排序数据
var end=[];//标准数据
var endNumber=[];//最后存储的数据
for(var x=0;x<j;x++){
    top.push(sel[x].geometricBounds[3]); // 真实数据
    };
top_max=Math.max.apply(null,top);//取数组最大值
//~ alert('top.length'+'~'+top);
temp=top.slice();//数组复制 赋值数组会同时改变。
temp.sort();//在原数组基础上排序 从小到大。
//~ alert('temp.length'+'~'+temp);
var top_=top.length;
var temp_=temp.length;
var off=sel[0].height+4*2.834645; // 读出自高及加上偏移量
for(var i=0;i<temp_;i++){//建立等差数列
    var temp_max=top_max-i*off;
    end.push(temp_max);       
    };
end.sort();
//~ alert('end.length'+'~'+end);
for(var i=0;i<top_;i++){
    var top_a=top[i];
//~     alert(top_a);
    for(var m=0;m<temp_;m++){
        var temp_a=temp[m];
        if(top_a===temp_a){
            endNumber.push([top[i],end[m]]);//建立二级数组,根据对应关系取数据
            };        
        };
    };

//~ alert('endtime.length'+'~'+endNumber);
for(var y=0;y<j;y++){
    var textArtRange =sel[y].story.textRange;
    textArtRange.characterAttributes.textFont =app.textFonts.getByName("Simhei");// 字体设置为黑体;
    textArtRange.characterAttributes.size=4*2.834645;// 大小设置为5mm
    textArtRange.characterAttributes.capitalization=FontCapsOption.ALLCAPS // 大小设置
    textArtRange.characterAttributes.fillColor=reColor(); 
    sel[y].left=left[0];    
    sel[y].top=endNumber[y][1];    
    };
function reColor(){
	var myCMYK = new CMYKColor();
	myCMYK.cyan = 100;
	myCMYK.magenta =100;
	myCMYK.yellow =100;
	myCMYK.black = 100;
	return myCMYK;
}
xpmycpc 当前离线  
旧 2017-04-19, 09:59   只看该作者   #7
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
wudan wudan 当前离线
正式会员
等级: 三袋长老
级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时级别:25 | 在线时长:778小时 | 升级还需:2小时
 
Uid: 61838
注册日期: 2007-12-08, 21:41
帖子: 138
感谢: 1
17 个帖子获得 58 次感谢
现金: 307金币
资产: 307金币
声望: 10 wudan 向着好的方向发展
默认

http://www.w3school.com.cn/jsref/jsref_sort.asp
你看看sort()函数的用法,可能错误就在这
wudan 当前离线  
右列会员因为此帖价值甚高向 wudan 表示感谢:
xpmycpc (2017-04-19)
旧 2017-04-19, 10:13   只看该作者   #8
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
默认

引用:
作者: wudan 查看帖子
http://www.w3school.com.cn/jsref/jsref_sort.asp
你看看sort()函数的用法,可能错误就在这
ai中有个疑问,sel【i】 i=0.1.2.3.4.。。。。

是怎么个顺序在画板中排列的?

如果你改变顺序了,好像sel【i】不发生变化,如何可以重新定位


我的这个文本排列,有时候是正确的,有时候出现了混排。
xpmycpc 当前离线  
旧 2017-04-19, 10:30   只看该作者   #9
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
xpmycpc xpmycpc 当前离线
正式会员
等级: 三袋长老
级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时级别:34 | 在线时长:1364小时 | 升级还需:1小时
 
Uid: 403140
注册日期: 2014-05-11, 11:01
帖子: 145
感谢: 44
7 个帖子获得 7 次感谢
现金: 180金币
资产: 180金币
声望: 10 xpmycpc 向着好的方向发展
默认

引用:
作者: wudan 查看帖子
http://www.w3school.com.cn/jsref/jsref_sort.asp
你看看sort()函数的用法,可能错误就在这
谢谢老师给的建议,根据你给的建议,检查确实是排序出现问题:
排序结果是:
1,10,1000,25,40,5
应该为:
1,5,10,25,40,1000

解决方案:加入了
function sortNumber(a,b)
{
return a - b
}
arr.sort(sortNumber)

结果运行跟我需要的相同,非常感谢
xpmycpc 当前离线  
发表新主题 关闭主题


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

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


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


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

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