我为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();
答案 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);