function 关闭事件监听(文件路径) { try { arg_num = arguments.length; } catch(e) { arguments = []; //初始赋值为空 } eventName = "set"; //开启监听 //enable_notifier(eventName,文件路径); // //取消监听 disable_notifier(eventName,文件路径); //这里进行监控调用事件 if (arguments.length >= 2) { //alert(arguments.length); //~ alert(arguments[0],"动作参数1"); //动作描述符 AR //~ alert(arguments[1],"动作参数2"); //动作事件ID moveToGuideCenter(); //main(arguments[0], arguments[1]); } function moveToGuideCenter() { if (app.documents.length === 0 || !app.activeDocument.selection.bounds) { alert("没有打开的文档或没有有效的选区。"); return; } var doc = app.activeDocument; var guides = doc.guides; var xGuide = null; var yGuide = null; // 找到 X 方向和 Y 方向上的参考线 for (var i = 0; i < guides.length; i++) { var guide = guides[i]; if (guide.direction === Direction.HORIZONTAL && yGuide === null) { yGuide = guide; } else if (guide.direction === Direction.VERTICAL && xGuide === null) { xGuide = guide; } } if (xGuide === null || yGuide === null) { alert("必须确保存在一条水平和一条垂直参考线。"); return; } var intersectionX = xGuide.coordinate; var intersectionY = yGuide.coordinate; var bounds = doc.selection.bounds; var xCenter = bounds[0] + (bounds[2] - bounds[0]) / 2; var yCenter = bounds[1] + (bounds[3] - bounds[1]) / 2; var deltaX = intersectionX - xCenter; var deltaY = intersectionY - yCenter; // 取消当前选区 doc.selection.deselect(); // 移动选区图层 var selectedLayer = doc.activeLayer; selectedLayer.translate(deltaX, deltaY); move_60275268554688() } function move_60275268554688() // һ { var d = new ActionDescriptor(); var r = new ActionReference(); r.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("targetEnum")); d.putReference(stringIDToTypeID("null"), r); var r1 = new ActionReference(); r1.putEnumerated(stringIDToTypeID("layer"), stringIDToTypeID("ordinal"), stringIDToTypeID("previous")); d.putReference(stringIDToTypeID("to"), r1); executeAction(stringIDToTypeID("move"), d, DialogModes.NO); } function enable_notifier(event_name, script_name, event_class) { try { for (var i = 0; i < app.notifiers.length; i++) { if (app.notifiers[i].event == event_name && File(app.notifiers[i].eventFile).fsName.toLowerCase() == File(script_name).fsName.toLowerCase()) { if (!app.notifiersEnabled) app.notifiersEnabled = true; return true; } } app.notifiers.add(event_name, File(script_name), event_class); app.notifiersEnabled = true; return true; } catch (e) { _alert(e); return false; } } function disable_notifier(event_name, script_name, event_class) { try { var ret = false; for (var i = 0; i < app.notifiers.length; i++) { if (app.notifiers[i].event == event_name && File(app.notifiers[i].eventFile).fsName.toLowerCase() == File(script_name).fsName.toLowerCase()) { app.notifiers[i].remove(); ret = true; } } if (!app.notifiers.length) app.notifiersEnabled = false; return ret; } catch (e) { _alert(e); return false; } } }