“数组不是函数”错误

时间:2012-05-29 07:56:24

标签: javascript arrays photoshop

我正在尝试创建一个在Photoshop中执行以下操作的JS脚本:

var textarray = array("Hello World", "Good morrow", "top of the morning");

对于数组中的每个单词

  1. 打开新文档
  2. 将单词写入图层
  3. 运行photoshop操作
  4. 保存并关闭
  5. 到目前为止这是我的代码..

    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
    }
    

    这是由于某种原因无法正常工作的数组部分..错误24:textarray.length不是函数

1 个答案:

答案 0 :(得分:6)

要回答原始问题,array( ... )不是您在JavaScript中创建数组的方式。

var textarray = [ "Hello World", "Good morrow", "top of the morning" ];

至于下一个问题(实际上应该是一个单独的问题),length不是一个函数,而是一个属性。

for (x=0; x < textarray.length; x++) { 
    ...