我已经使用脚本侦听器创建了一个新层。聪明的做法是将其放置在活动层上方(创建后不从顶部移到顶部)。但是,我不知道要确定代码的哪一部分,因为它们都符合executeAction:>
function create_new_layer(layername)
{
var idMk = charIDToTypeID( "Mk " );
var desc447 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref217 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
ref217.putClass( idLyr );
desc447.putReference( idnull, ref217 );
var idUsng = charIDToTypeID( "Usng" );
var desc448 = new ActionDescriptor();
var idNm = charIDToTypeID( "Nm " );
desc448.putString( idNm, layername );
var idLyr = charIDToTypeID( "Lyr " );
desc447.putObject( idUsng, idLyr, desc448 );
var idLyrI = charIDToTypeID( "LyrI" );
desc447.putInteger( idLyrI, 57 );
executeAction( idMk, desc447, DialogModes.NO );
}
答案 0 :(得分:1)
我认为AM代码代表Photoshop中的实际功能,它们在内部的工作方式,而DOM则是叠加在上面的某种形式。通常,DOM代码是有限的,并且AM不能做很多事情。在这种情况下,ArtLayer.add()
将一层推入activeDocument.layers
,使其出现在层堆栈的顶部,而AM命令执行New Layer...
命令。同样,通常AM代码的工作速度比DOM快得多(最高10-15倍),尤其是在选择图层并使用它们的情况下。