2017-08-27 93 views
0

我开始看着Photoshop的脚本。我必须说整个行动脚本代码对我来说有点混乱。是否有解决整个动作管理器代码的方法?没有操作管理器的Photoshop脚本是否可行?

I read that you can include other JS files

也许有人已经建立的动作功能的libary?随着单线

var idMk = charIDToTypeID("Mk "); 
var desc21 = new ActionDescriptor(); 
var idNw = charIDToTypeID("Nw "); 
var desc22 = new ActionDescriptor(); 
var idNm = charIDToTypeID("Nm "); 
desc22.putString(idNm, """Set 1"""); 
var idASet = charIDToTypeID("ASet"); 
desc21.putObject(idNw, idASet, desc22); 
executeAction(idMk, desc21, DialogModes.NO); 

例如,这libary可以代替这个

MakeNewActionSet("Set 1", DialogModes.NO, [optional parameter]); 

我发现one project,但它是过时的。有人知道这样的事吗?

PS:我的第一篇文章在这里。我希望它不违反规则。

编辑:其实,我发现了一些:JSON Action Manager

回答

0

是。简短的答案。并参考你的例子:如果MakeNewActionSet是一个函数,你可以有效地替换另一个。

MakeNewActionSet("Set 1", DialogModes.NO); 

function MakeNewActionSet(setnumber, dialogue) 
{ 
    var idMk = charIDToTypeID("Mk "); 
    var desc21 = new ActionDescriptor(); 
    var idNw = charIDToTypeID("Nw "); 
    var desc22 = new ActionDescriptor(); 
    var idNm = charIDToTypeID("Nm "); 
    desc22.putString(idNm, setnumber); // set 
    var idASet = charIDToTypeID("ASet"); 
    desc21.putObject(idNw, idASet, desc22); 
    executeAction(idMk, desc21, dialogue); //dialogue 
} 

虽然动作脚本代码是丑陋的和不可读的,但它做的工作。有时,让脚本侦听器记录您想要的内容会更容易。其他时候回头参数化是有意义的。例如,我在这里有一个动作脚本代码,它将执行转换(旋转,偏移和缩放),我只是将它封装为函数 - 这使得它更易于阅读。

// function transform it 
function transformIt(scaleX, scaleY, dx, dy, rot) 
{ 
    // ======================================================= 
    var id3561 = charIDToTypeID("Trnf"); 
    var desc725 = new ActionDescriptor(); 
    var id3562 = charIDToTypeID("null"); 
    var ref430 = new ActionReference(); 
    var id3563 = charIDToTypeID("Lyr "); 
    var id3564 = charIDToTypeID("Ordn"); 
    var id3565 = charIDToTypeID("Trgt"); 
    ref430.putEnumerated(id3563, id3564, id3565); 
    desc725.putReference(id3562, ref430); 
    var id3566 = charIDToTypeID("FTcs"); 
    var id3567 = charIDToTypeID("QCSt"); 
    var id3568 = charIDToTypeID("Qcsa"); 
    desc725.putEnumerated(id3566, id3567, id3568); 
    var id3569 = charIDToTypeID("Ofst"); 
    var desc726 = new ActionDescriptor(); 
    var id3570 = charIDToTypeID("Hrzn"); 
    var id3571 = charIDToTypeID("#Pxl"); 
    desc726.putUnitDouble(id3570, id3571, dx); 
    var id3572 = charIDToTypeID("Vrtc"); 
    var id3573 = charIDToTypeID("#Pxl"); 
    desc726.putUnitDouble(id3572, id3573, dy); 
    var id3574 = charIDToTypeID("Ofst"); 
    desc725.putObject(id3569, id3574, desc726); 
    var id3575 = charIDToTypeID("Wdth"); 
    var id3576 = charIDToTypeID("#Prc"); 
    desc725.putUnitDouble(id3575, id3576, scaleX); 
    var id3577 = charIDToTypeID("Hght"); 
    var id3578 = charIDToTypeID("#Prc"); 
    desc725.putUnitDouble(id3577, id3578, scaleY); 
    var id3579 = charIDToTypeID("Angl"); 
    var id3580 = charIDToTypeID("#Ang"); 
    desc725.putUnitDouble(id3579, id3580, rot); 
    var id3581 = charIDToTypeID("Lnkd"); 
    desc725.putBoolean(id3581, true); 
    executeAction(id3561, desc725, DialogModes.NO); 
} 

我希望这有助于。

相关问题