Adobe ExtendScript Javascript:用包含UI元素的函数替换字符串

问题描述 投票:0回答:1

一般来说,对编码来说是新手,想知道是否可以更改变量的内容并使用replace()或change()将其更新到UI?我相信它比这要难得多,但我无法将其包裹住。

(function(thisObj) {

    scriptBuildUI(thisObj)

    function scriptBuildUI(thisObj) {
        var win = (thisObj instanceof Panel) ? thisObj : new Window("palette", "replaceTest", undefined, 0);
        win.alignChildren = ['center','top'];

    var myTab = win.add("panel", undefined); 
        var replacebutton = myTab.add("button",undefined,"Replace");
        var myTab2 = "x";
        replacebutton.onClick = function(){ myTab2.replace("x",function(){hO()}) };

        function hO() {myTab.add("button", undefined,"Retgf")};

        win.onResizing = win.onResize = function() {
            this.layout.resize();
        };

        win instanceof Window
            ? (win.center(), win.show()) : (win.layout.layout(true), win.layout.resize());
    }


})(this);
adobe extendscript
1个回答
0
投票

我不确定您在这里尝试做什么。 myTab2是一个字符串变量,而。replace()是一个字符串函数。它返回一个字符串。因此,您尝试用函数的内容替换“ x”吗?为了什么目的另外,按照我的看法,它只会向myTab添加一个按钮。

如果您能告诉我您想做什么,也许我们可以找到解决方法。

编辑:要将功能仅分配给myTab2,您可以直接执行此操作。而且,如果您想更改UI,我认为您需要运行win.layout.layout(true);使其可见。以下代码每次单击都会向您的标签添加一个按钮。

(function(thisObj) {

    scriptBuildUI(thisObj)

    function scriptBuildUI(thisObj) {
        var win = (thisObj instanceof Panel) ? thisObj : new Window("palette", "replaceTest", undefined, 0);
        win.alignChildren = ['center','top'];

        var myTab = win.add("panel", undefined);
        var replacebutton = myTab.add("button",undefined,"Replace");
        var myTab2 = "x";
        replacebutton.onClick = function(){ myTab2=hO() };

        function hO() {
            myTab.add("button", undefined,"Retgf");
            win.layout.layout(true);
        };

        win.onResizing = win.onResize = function() {
            this.layout.resize();
        };

        win instanceof Window
        ? (win.center(), win.show()) : (win.layout.layout(true), win.layout.resize());
    }
})(this);
© www.soinside.com 2019 - 2024. All rights reserved.