我第一次做一些 Photoshop 脚本,如果有一个类似 console.log 的函数来在ExtendScript Toolkit App的 Javascript 控制台中输出数组和对象值肯定会很棒。
有没有等价的功能?
我第一次做一些 Photoshop 脚本,如果有一个类似 console.log 的函数来在ExtendScript Toolkit App的 Javascript 控制台中输出数组和对象值肯定会很棒。
有没有等价的功能?
$.writeln()
就是你要找的。有关详细信息,请参阅JavaScript 工具指南 (PDF)。
我正在使用 ExtendScript Toolkit 4.0 版,并且使用_print('foo')
似乎可以解决问题。
write("any message");
在 XTools for Photoshop 中有效。我发现 Photoshop 调试器在 Mac OSX 上的 CS6 中一直崩溃。
您可以在此处找到有关 XTools 的更多信息:http: //ps-scripts.sourceforge.net/xtools.html。
太棒了!
我知道这很旧,但我最近需要记录 InDesign 脚本的一些值,我想分享我的“解决方案”。
我的第一个问题是我什至没有弄清楚输出产生的$.writeln()
去向。所以我求助于一个粗略的函数,将日志记录到文档目录中的一个文件中。也许它会对某人有用。我猜这可能也适用于 Photoshop 或其他 ExtendScript 环境。
我了解到 ExtendScript 不支持JSON
方法,所以我使用了 polyfill。只需将文件(在我的情况下json2.js
)与您的.jsx
.
#include "json2.js"; // include polyfill file
function log (input) {
if(!debug) return;
if(!JSON || !JSON.stringify) return;
var now = new Date();
var output = JSON.stringify(input);
$.writeln(now.toTimeString() + ": " + output);
var logFile = File(app.activeDocument.filePath + "/log.txt");
logFile.open("a");
logFile.writeln(now.toTimeString() + ": " + output);
logFile.close();
}
var debug = true;
log("abc 123");
log([1, 3, 4343, "ddddd", null, false]);
使用该debug
变量可以快速启用或禁用输出。