将带有方法的对象转换为Javascript中的字符串(用于Photoshop)

Convert object with methods to string in Javascript (for Photoshop)

本文关键字:字符串 用于 Photoshop 有方法 对象 转换 Javascript      更新时间:2024-02-05

我在Photoshop脚本中使用了一个全局对象。它的属性和方法如下:

var Obj = {};
Obj.str = "this is a string";
Obj.swissKnife = new SwissKnife(); // custom object with it's own methods
Obj.swissKnife.aMethod = function() { return "this is a method"; };

我需要将整个对象转换为字符串。

在Photoshop中,为了显示调色板(非模态)对话框,允许用户继续与应用程序交互(我需要他们在继续操作之前用字幕工具选择一个区域),您必须通过BridgeTalk向Photoshop发回消息。这样做时,您想要发送的代码必须是一个字符串,如下所示:

var title = "Select image";
var message = "Select image to protect with marquee tool, then click continue.";
var bt = new BridgeTalk();
bt.target = "photoshop";
bt.body = "var w = new Window('palette', '" + title + "', [0, 0, 400, 100]); '
                w.add('statictext', [5,5,390,50], '" + message + "'); '
                okButton = w.add('button', [5,40,205,90], 'GO!'); '
                w.center(); '
                okButton.onClick = function() { '
                    w.close(); '
                    obj = " + obj + "; '
                    #include '"/c/script.jsx'"; '
                }; '
                w.show();";
bt.send();

我需要对象obj(及其所有属性和方法)对我加载的下一个脚本/c/script.jsx可用。因此,我需要一种方法将整个obj对象求值为一个字符串,然后写入obj=声明。

在这里查看xtools库的Stdlib.js中的objectToXML方法:http://ps-scripts.sourceforge.net/xtools.html