2017-08-27 92 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); 
} 

我希望這有助於。

相關問題