使用javascript编写Photoshop脚本:变量won't assign

Photoshop scripting with javascript: variable won't assign

本文关键字:assign won 变量 编写 javascript Photoshop 脚本 使用      更新时间:2023-09-26

我刚刚开始尝试用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一段时间!)或可能的范围?无论如何,任何建议都会很有帮助!

谢谢。

这不是JavaScript switch ... case语句的工作方式。case表达式是静态求值的。

基本上你需要if而不是switch:

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

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