使用javascript:变量的Photoshop脚本将不会分配

时间:2013-05-26 19:02:19

标签: javascript switch-statement photoshop

我刚开始尝试使用javascript编写一些photoshop脚本并使用switch语句遇到此问题 - 代码如下:

var document = app.activeDocument;
var activeLayer = document.activeLayer;
if(activeLayer.kind == LayerKind.TEXT) {
    var textItem = activeLayer.textItem;
    var newText = "null";
    var iString = "null";
    for (var i=0; i<=720; i++) {
        switch (i)
        {
        case (i<=60):
          if (i==60) {
            iString = "00";
          } else {
           iString = i.toString();
          }
          newText = "00:" + iString;
          break;
        case (etc...):
          etc...
        break;
    }
    textItem.contents = newText;
    var saveFile = new File("/Users/Family/Desktop/wallpaper-clock/lake_" + newText);
    document.saveAs(saveFile);
}

}

这不会在photoshop中引发任何错误,但newText保持为“null”并且没有设置为switch语句中的任何内容。好像整个开关都无所事事!它可能只是一个愚蠢的语法错误(一直使用Objective-C!)或可能范围?无论如何,任何建议都会非常有用!

感谢。

1 个答案:

答案 0 :(得分:1)

这不是JavaScript switch ... case语句的工作原理。 case表达式是静态评估的。

基本上您需要if而不是switch

  if (i <= 60) {
   // ...
  }
  else if (i <= whatever) {
   // ...
  }
  // ... and so on ...

此外,您几乎肯定想要常量null而不是字符串"null"