I’m trying to create a JS script that does the following in Photoshop:
var textarray = array("Hello World", "Good morrow", "top of the morning");
For each word in the array
- Open new document
- Write the word onto a layer
- Run a photoshop action
- Save and close
This is my code so far..
var textarray = [ "Hello World", "Good morrow", "top of the morning" ];
for (x=0; x < textarray.length(); x++) {
#target photoshop
app.bringToFront();
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.INCHES;
app.preferences.typeUnits = TypeUnits.POINTS;
var docRef = app.documents.add(7, 5, 72);
// suppress all dialogs
app.displayDialogs = DialogModes.NO;
var textColor = new SolidColor;
textColor.rgb.red = 255;
textColor.rgb.green = 0;
textColor.rgb.blue = 0;
var newTextLayer = docRef.artLayers.add();
newTextLayer.kind = LayerKind.TEXT;
newTextLayer.textItem.contents = textarray[x];
newTextLayer.textItem.position = Array(0.75, 0.75);
newTextLayer.textItem.size = 36;
newTextLayer.textItem.color = textColor;
app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
docRef = null;
textColor = null;
newTextLayer = null;
// DO ACTION HERE
//CLOSE AND SAVE
}
It’s the array part that isn’t working for some reason.. error 24: textarray.length is not a function
To answer the original question,
array( ... )is not how you create an array in JavaScript.As for the next problem (which should actually be a separate question),
lengthis not a function but a property.