Javascript or ScriptListener - which one is better?
Hi experts
I am wring a photoshop script and wondering whether javascript will be better or scriptlistener ?
I read that javascript will be faster, but all the APIs are not compatible with all the versions of photoshop.
On the otherhand, scriptlistener may be slower, but it's compatible with all the photoshop versions.
Is it true? Can you please confirm?
I know that many commands can't be executed by javascript; scriptlistener is the only option. But when both are working which one to choose?
For example I am duplicating two layerSets to a different document and aligning it to right side.
In Javascript -
var openDocs = app.documents;
app.displayDialogs = DialogModes.NO;
var curDoc = openDocs[1];
var topLayerSet1 = curDoc.layerSets.getByName("TOP");
var bottomLayerSet1 = curDoc.layerSets.getByName("BOTTOM");
topLayerSet1.duplicate(openDocs[0], ElementPlacement.PLACEATBEGINNING);
bottomLayerSet1.duplicate(openDocs[0], ElementPlacement.PLACEATEND);
curDoc.close(SaveOptions.DONOTSAVECHANGES);
var doc = app.activeDocument;
var topLayerSet2 = doc.layerSets.getByName("TOP");
var bottomLayerSet2 = doc.layerSets.getByName("BOTTOM");
topLayerSet2.translate(5400, 0);
bottomLayerSet2.translate(5400, 0);
In scriptlistener -
//Right Align
var idAlgn = charIDToTypeID( "Algn" );
var desc317 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref27 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref27.putEnumerated( idLyr, idOrdn, idTrgt );
desc317.putReference( idnull, ref27 );
var idUsng = charIDToTypeID( "Usng" );
var idADSt = charIDToTypeID( "ADSt" );
var idAdRg = charIDToTypeID( "AdRg" );
desc317.putEnumerated( idUsng, idADSt, idAdRg );
var idalignToCanvas = stringIDToTypeID( "alignToCanvas" );
desc317.putBoolean( idalignToCanvas, false );
executeAction( idAlgn, desc317, DialogModes.NO );
Which one shoud I choose?
Will eagerly wait for your valuable comments.


