创建后的Photoshop图层顺序

时间:2018-01-07 18:08:42

标签: javascript photoshop jsx

我为Photoshop中的New Layer编写如下代码的脚本。 但我不希望我的新图层顺序到所有图层的顶部。

请帮助我避免新图层跳转到所有以前图层的顶部。

var create_NewLayer = function ()
{
    var newLyer = activeDocument.artLayers.add();
}
create_NewLayer();

我改进了一点,但仍然需要帮助,结果和以前一样。

var create_NewLayer = function ()
{
    try
    {
        if  ( app.documents.length )
        {
            var doc = app.activeDocument;
            var currentDoc = doc.activeLayer;

            // New Layer Create
            var layers = doc.artLayers;
            var newLayer = layers.add();

            // Move Before Last Active Layer
            layers.move(getLayerIndex(currentDoc), PsElementPlacement.PLACEBEFORE);
        }
    }
    catch (e)
    {

    }
}
create_NewLayer();

1 个答案:

答案 0 :(得分:2)

我试过这个,最终找到了一行代码,可以在上一层之前成功移动一个新图层:

var docRef =  app.activeDocument 
docRef.artLayers[0].move(docRef.artLayers[docRef.artLayers.length-1], ElementPlacement.PLACEBEFORE);

我认为必须有一种方法可以使用for循环迭代图层并继续将新图层一直移动到底部。

docRef.artLayers.length会返回您拥有的artLayers数量。

您可能需要使用图层集来完成您要执行的操作。我找到了以下代码on this page

// Get a reference to the first layer in the document
var layerRef:Layer = app.activeDocument.layers.index(0);

// Create a new LayerSet, by default at the top of the document
var newLayerSetRef:Layer = app.activeDocument.layerSets.add();

// Move the new layer set to after the previously first layer
newLayerSetRef.move(layerRef, ElementPlacement.PLACEAFTER);