Как изменить абсолютный путь на относительный в файле .jsx. (Скрипт расширения Photoshop)? - PullRequest
0 голосов
/ 11 октября 2019

У меня проблема при разработке расширения для 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);
  };

Любая помощьнаиболее ценится.

1 Ответ

1 голос
/ 11 октября 2019

Вам необходимо передать свой путь расширения со стороны CEP.

CEP:

//when initialization happens
var extensionRoot = csInterface.getSystemPath(SystemPath.EXTENSION);
csInterface.evalScript('updateGlobalVars("' + extensionRoot + '")', function() {
    csInterface.evalScript('step7()');
});

JSX:

var pathToExtension = '';

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

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