@bradido 的回答很有帮助,但不完整。
似乎 Illustrator 有不同的坐标系:一个整体文档坐标系和一个基于当前活动画板的第二个坐标系(您可能定义了几个,但一次只有一个是“活动的”。)一个的原点位于画板的中心文档,而另一个文档的原点位于左上角。它的 Y 值也向上增加。
首先使用app.coordinateSystem
属性检查坐标系是明智的,如果需要,有一个转换函数 ( doc.convertCoordinate
) 来处理与中心的偏移。
这是一个片段,演示了如何在 Illustrator 中检索符号的 x,y 值,稍后可以在 actionscript 中使用(使用坐标系转换):
var doc = app.activeDocument;
var sel = doc.selection;
var selLen = sel.length;
var code = 'var pointsOnMap:Vector.<Vec> = Vector.<Vec>([';
for(var i = 0 ; i < selLen ; i++){
var pos = doc.convertCoordinate(sel[i].position, app.coordinateSystem, CoordinateSystem.ARTBOARDCOORDINATESYSTEM);
code += 'new Vec('+(pos[0] + (sel[i].width * .5)).toFixed(2) + ' , ' + Math.abs((pos[1] - (sel[i].height*.5))).toFixed(2); // Math.abs(pos-height) - same for both coord systems ?
if(i < selLen-1) code += '),';
else code += ')]);pointsOnMap.fixed=true;';
}
$.writeln(code);
有关更多详细信息,请参阅Adobe 论坛上的此主题。