Quantcast
Channel: Adobe Community: Message List - Photoshop Scripting
Viewing all articles
Browse latest Browse all 27456

Move a layer/layerset into a layerset using ID only

$
0
0

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;

             }

        }

 

 

    },


Viewing all articles
Browse latest Browse all 27456


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>