I'm trying to move a layer into a layerset using it's ID (not name or index).
This function below works if I use putName instead of putIdentifier, does anyone have some code that will move a layer into a layerset using only ID?
I keep getting General photoshop error occurred.
moveLayer : function( fromLayer, toLayer )
{
var desc5 = new ActionDescriptor();
var ref4 = new ActionReference();
ref4.putIdentifier( charIDToTypeID('Lyr '), Number(fromLayer) );
desc5.putReference( charIDToTypeID('null'), ref4 );
var ref5 = new ActionReference();
ref5.putIndex( charIDToTypeID('Lyr '), this.getLayerIndex(toLayer) );
desc5.putReference( charIDToTypeID('T '), ref5 );
desc5.putBoolean( charIDToTypeID('Adjs'), false );
desc5.putInteger( charIDToTypeID('Vrsn'), 5 );
try
{
executeAction( charIDToTypeID('move'), desc5, DialogModes.NO );
}
catch(e)
{
alert(e);
}
},
// Get layer index but return 0 if there is an error.
getLayerIndex: function(id)
{
var ref = new ActionReference();
ref.putIdentifier( charIDToTypeID('Lyr '), id );
try
{
activeDocument.backgroundLayer;
return executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ))-1;
}
catch(e)
{
try
{
return executeActionGet(ref).getInteger(charIDToTypeID( "ItmI" ));
}
catch(e)
{
return 0;
}
}
},