0

我刚刚开始尝试使用 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!)或者可能是范围?无论如何,任何建议都会非常有帮助!

谢谢。

4

1 回答 1

1

switch ... caseJavaScript语句不是这样工作的。case表达式是静态评估的。

基本上你需要if而不是switch

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

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

于 2013-05-26T19:05:24.617 回答