Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Photoshop/ESTK-与用户输入不同的预定义数值_Javascript_Photoshop Script_Adobe Scriptui - Fatal编程技术网

Javascript Photoshop/ESTK-与用户输入不同的预定义数值

Javascript Photoshop/ESTK-与用户输入不同的预定义数值,javascript,photoshop-script,adobe-scriptui,Javascript,Photoshop Script,Adobe Scriptui,首先,我在一台装有OSX10.9的台式机上,一台装有OSX10.10的macbook,上面有最新版本的Photoshop&ESTK。目前的版本是:Photoshop CC 2015529.r.88 x64、ESTK 4.0.0.1-ExtendedScript 4.5.5和ScriptUI 6.2.2。两种系统的结果相同 简而言之,我的问题不在于设置变量本身。它与变量中的值一起使用,稍后在脚本中正确使用。包括将变量从on传递到另一个。 e、 g 我要做的主要是将一个数值从用户输入传递到变量。然后

首先,我在一台装有OSX10.9的台式机上,一台装有OSX10.10的macbook,上面有最新版本的Photoshop&ESTK。目前的版本是:Photoshop CC 2015529.r.88 x64、ESTK 4.0.0.1-ExtendedScript 4.5.5和ScriptUI 6.2.2。两种系统的结果相同

简而言之,我的问题不在于设置变量本身。它与变量中的值一起使用,稍后在脚本中正确使用。包括将变量从on传递到另一个。

e、 g

我要做的主要是将一个数值从用户输入传递到变量。然后在脚本的另一部分中准确地使用该值。当在脚本中定义了用户输入之外的变量时,一切都能正常工作。一旦添加了用户输入,就可以准确地重复变量

例如使用:

    alert('The variable is currently set to: ' + value);
然而,在photoshop中运行时,结果并不像预期的那样

脚本所做或应该做的。就是将活动层切割成一个预定义的网格。每个切口都放置在自己的图层上。我已经说过了。当网格被预定义时,一切都是完美的。但当添加用户输入时。网格完全倾斜。只有网格的第一个单元/层是精确的。其他一切都奇怪地镶嵌在一起,尽管这是可以预见的

我试过使用:

document.getElementById("numb")
在Chrome和Firefox中工作良好。但在Photoshop或ESTK中运行时崩溃

prompt
它提供了倾斜/镶嵌的结果

以及一个对话框窗口:

    // begin dialog layout
    var GridLayersDialog = new Window('dialog');
    GridLayersDialog.text = 'Grid To Layers';
    GridLayersDialog.frameLocation = [70, 70];
    GridLayersDialog.alignChildren = 'center';


    GridLayersDialog.GridSizePnl = GridLayersDialog.add('panel', [2, 2, 200, 70], 'Grid Size');
    GridLayersDialog.GridSizePnl.add('statictext', [10, 16, 79, 48], 'Dimensions: ');
    GridLayersDialog.GridSizePnl.aspectDimension = GridLayersDialog.GridSizePnl.add('edittext', [85, 13, 120, 34], dfltCs, {name:'cellSize'});
    GridLayersDialog.GridSizePnl.aspectDimension.helpTip = 'Width & Height in pixels';


    var buttons = GridLayersDialog.add('group');
    buttons.orientation = 'row';
    var okBtn = buttons.add('button');
    okBtn.text = 'OK';
    okBtn.properties = {name: 'ok'};
    var cancelBtn = buttons.add('button');
    cancelBtn.text = 'Cancel';
    cancelBtn.properties = {name: 'cancel'};


    // display dialog and only continues on OK button press (OK = 1, Cancel = 2)
    if (GridLayersDialog.show() == 1) {
        cellSize = String(GridLayersDialog.GridSizePnl.cellSize.text); etc...
这也提供了扭曲的结果

原稿“未受法律约束”如下:

    // Size of cell in pixels
    var cellSize = 16;

    // Set the ruler type
    if (app.preferences.rulerUnits != Units.PIXELS)
    {
        app.preferences.rulerUnits = Units.PIXELS;
    }

    var layerRef = docRef.activeLayer;

    for (y = 0; y<docRef.height; y+=cellSize)
    {
        for (x = 0; x<docRef.width; x+=cellSize)
        {
            //activate the original layer
            docRef.activeLayer = layerRef;
            //make the selection
            docRef.selection.select(Array (Array(x, y), Array(x, y+cellSize), Array(x+cellSize,y+cellSize), Array(x+cellSize,y)), SelectionType.REPLACE, 0, false);

            //copy the selection
            docRef.selection.copy();
            //create and paste new layer
            docRef.artLayers.add();
            docRef.paste();
            }
        }
    }
//以像素为单位的单元格大小
var-cellSize=16;
//设置标尺类型
if(app.preferences.rulerUnits!=单位.像素)
{
app.preferences.rulerUnits=单位.PIXELS;
}
var layerRef=docRef.activeLayer;

对于(y=0;y我已经看过了你的脚本:这可能会有帮助:

    var dfltCs = 16;

    // begin dialog layout
    var GridLayersDialog = new Window('dialog');
    GridLayersDialog.center();
    GridLayersDialog.text = 'Grid To Layers';
    GridLayersDialog.frameLocation = [70, 70];
    GridLayersDialog.alignChildren = 'center';


    GridLayersDialog.GridSizePnl = GridLayersDialog.add('panel', [2, 2, 200, 70], 'Grid Size');
    GridLayersDialog.GridSizePnl.add('statictext', [10, 16, 79, 48], 'Dimensions: ');
    GridLayersDialog.GridSizePnl.aspectDimension = GridLayersDialog.GridSizePnl.add('edittext', [85, 13, 120, 34], dfltCs, {name:'cellSize'});
    GridLayersDialog.GridSizePnl.aspectDimension.helpTip = 'Width & Height in pixels';
    // Room left for additional data in future update.
    cellSize = String(GridLayersDialog.GridSizePnl.cellSize.text); if (cellSize=="") { cellSize = dfltCs;} // Set user input to variable

    GridLayersDialog.add ("button", undefined, "OK");
    if (GridLayersDialog.show () == 1)
    {
    var v = GridLayersDialog.GridSizePnl.aspectDimension.text;
    alert('The variable is currently set to: ' + v);
    }
所有更改都在最后几行中。要获取edittext(字符串)的值,您需要以下内容:

var v = GridLayersDialog.GridSizePnl.aspectDimension.text

我希望这能有所帮助。

感谢您的时间和输入。但是我已经通过以下方式将输入传递给变量:cellSize=String(GridLayersDialog.GridSizePnl.cellSize.text);if(cellSize==“”){cellSize=dfltCs;}虽然你的回答让我意识到。我不小心把它放错了地方。我的问题不是设置变量本身。而是变量中的值在“网格层”中被正确使用脚本的一部分,由于脚本以前的运行方式。变量是由预定义的默认值设置的。这也不能与主脚本一起正常工作。感谢您帮助我认识到附加的缺陷。今天发布了新版Photoshop。当前正在更新,将通知更新是否解决了我的问题。问题仍然存在操作系统X 10.9和10.10上的Photoshop CC 2015529.r.88中的ent。此外,还存在一些与操作系统X 10.9.1不兼容的地方,这可能会迫使我进行更新。作为一个平庸的解决方案,我拼凑了一个粗略的AppleScript,用用户输入替换原始脚本中的预定义值。这是一个很混乱的操作,调用一个动作来正确地执行执行.js文件。因为它有点复杂,只适用于OS X,只是一个快速修复和/或解决方法。我不想作为答案发布。如果有人遇到这个问题,需要解决。只要问一下&我会尽我所能帮助。原来的问题仍然存在。我已经尝试了所有方法,没有任何方法可以解决。因此,我已经提交了一份Adobe的bug报告。如果不是bug,这个脚本已经打败了我。已经有一段时间了&这个问题在我尝试过的所有CC版本中都存在。仍然没有解决方案。让我开始认为这是一个功能,而不是bug。为了它,我在CS6中尝试了这个脚本&我认为它应该运行的所有功能。我能想到的最好的是Adobe对他们的应用做了些什么从CS迁移到CC时JS的实现。
var v = GridLayersDialog.GridSizePnl.aspectDimension.text