我刚开始尝试使用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!)或可能范围?无论如何,任何建议都会非常有用!
感谢。
答案 0 :(得分:1)
这不是JavaScript switch ... case
语句的工作原理。 case
表达式是静态评估的。
基本上您需要if
而不是switch
:
if (i <= 60) {
// ...
}
else if (i <= whatever) {
// ...
}
// ... and so on ...
此外,您几乎肯定想要常量null
而不是字符串"null"
。