Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在.jsx文件中将绝对路径更改为相对路径。(Photoshop扩展脚本)?_Javascript_Adobe_Extendscript - Fatal编程技术网

Javascript 如何在.jsx文件中将绝对路径更改为相对路径。(Photoshop扩展脚本)?

Javascript 如何在.jsx文件中将绝对路径更改为相对路径。(Photoshop扩展脚本)?,javascript,adobe,extendscript,Javascript,Adobe,Extendscript,我在为Photoshop开发扩展时遇到问题。 我已经生成了在.jsx文件中编写的操作代码。我需要将绝对路径更改为相对路径,这样无论扩展名安装在何处,用户都可以访问该文件 .jsx文件: function step7(enabled, withDialog) { if (enabled != undefined && !enabled) return; var dialogMode = (withDialog ? DialogModes.ALL : Di

我在为Photoshop开发扩展时遇到问题。 我已经生成了在.jsx文件中编写的操作代码。我需要将绝对路径更改为相对路径,这样无论扩展名安装在何处,用户都可以访问该文件

.jsx文件:

function step7(enabled, withDialog) {
    if (enabled != undefined && !enabled)
      return;
    var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
    var desc1 = new ActionDescriptor();
    desc1.putInteger(cTID('Idnt'), 4);
    desc1.putPath(cTID('null'), new File("~/AppData/Roaming/Adobe/CEP/extensions/Mockups_Extension/psd/texture.png"));
    desc1.putEnumerated(cTID('FTcs'), cTID('QCSt'), sTID("QCSAverage"));
    var desc2 = new ActionDescriptor();
    desc2.putUnitDouble(cTID('Hrzn'), cTID('#Pxl'), -1.13686837721616e-13);
    desc2.putUnitDouble(cTID('Vrtc'), cTID('#Pxl'), 0);
    desc1.putObject(cTID('Ofst'), cTID('Ofst'), desc2);
    desc1.putUnitDouble(cTID('Wdth'), cTID('#Prc'), 249.5);
    desc1.putUnitDouble(cTID('Hght'), cTID('#Prc'), 249.5);
    executeAction(cTID('Plc '), desc1, dialogMode);
  };

非常感谢您的帮助。

您需要通过CEP端的扩展路径

CEP:

JSX:


谢谢你的回答。但是问题是,如果我们在myScript函数中使用这个选项,那么step7函数(在我的示例中)就看不到myScript函数的变量。因此,我需要以某种方式将您的选项集成到现有的step7函数中或创建全局变量。是什么阻止您创建全局变量或将此路径传递到您的
step7
函数?不幸的是,我不知道如何创建全局变量,因为这在js中不起作用。函数不会将结果返回给变量。如果您演示如何创建全局变量以及如何传递现有step7函数的路径,我将不胜感激。我已经更新了我的答案。这是一件很基本的事情,所以我建议你花一个小时在任何学习平台上学习一门免费的JS课程,让你的生活更轻松:)是的,它很有效!!!永远!非常感谢你!你帮了我很多。这是一个停止了整个开发过程的问题。谢谢你的时间和耐心。祝你在开发项目时好运!
//when initialization happens
var extensionRoot = csInterface.getSystemPath(SystemPath.EXTENSION);
csInterface.evalScript('updateGlobalVars("' + extensionRoot + '")', function() {
    csInterface.evalScript('step7()');
});
var pathToExtension = '';

function updateGlobalVars(path) {
    pathToExtension = path;
};

function step7(arg1, arg2) {
    alert(pathToExtension)
};