Skip to main content
Known Participant
November 8, 2023
Answered

Delete empty layers in Animate?

  • November 8, 2023
  • 5 replies
  • 681 views

Hi there!

I'm sure this topic go through many apps, not only Animate.

Many time I receive layouts with many empty layers and of course I delete them, but there also are inbetween some non empty layers, so I have to select one by one in order to delete them.

So, is there a way to delete empty layers automatically in Animate?

Thanks in advance!

    This topic is closed to new replies. Start a new post to keep the conversation going.
    Correct answer JoãoCésar17023019

    This one will delete the selected layers in the current timeline:

    var doc = fl.getDocumentDOM();
    var timeline = doc.getTimeline();
    var layers = timeline.layers;
    var selectedLayers = timeline.getSelectedLayers().reverse();
    
    selectedLayers.forEach(function(selectedLayerIndex)
    {
    	var isEmpty = true;
    	var layer = layers[selectedLayerIndex];
    	
    	layer.frames.some(function(frame, index)
    	{
    		if (!frame.isEmpty)
    		{
    			isEmpty = false;
    			return true;
    		}
    	});
    	
    	if (isEmpty)
    		timeline.deleteLayer(selectedLayerIndex);		
    });

     

    This one will delete all empty layers in the current timeline:

    var doc = fl.getDocumentDOM();
    var timeline = doc.getTimeline();
    var layers = timeline.layers.reverse();
    var total = layers.length;
    var count = 0;
    var deleted = 0;
    
    layers.forEach(function(layer)
    {
    	count++;
    	
    	if (layer.layerType !== "folder")
    	{
    		var isEmpty = true;
    	
    		layer.frames.some(function(frame)
    		{
    			if (!frame.isEmpty)
    			{
    				isEmpty = false;
    				return true;
    			}
    		});
    		
    		if (isEmpty)
    		{
    			timeline.deleteLayer(total - count);
    			deleted++;
    		}			
    	}			
    });
    
    fl.trace(deleted + " of " + layers.length + " layer(s) deleted.");

     

    Regards,

    JC

    5 replies

    JoãoCésar17023019
    Community Expert
    Community Expert
    November 8, 2023

    Hi.

     

    This JSFL script will delete all empty layers in the whole document. Make sure to save your file first and/or to create a backup copy.

    https://github.com/joao-cesar/adobe/tree/master/animate%20cc/jsfl/remove_all_empty_layers

     

    Just download it and double-click on it to run.

     

    Regards,

    JC

    JoãoCésar17023019
    Community Expert
    JoãoCésar17023019Community ExpertCorrect answer
    Community Expert
    November 8, 2023

    This one will delete the selected layers in the current timeline:

    var doc = fl.getDocumentDOM();
    var timeline = doc.getTimeline();
    var layers = timeline.layers;
    var selectedLayers = timeline.getSelectedLayers().reverse();
    
    selectedLayers.forEach(function(selectedLayerIndex)
    {
    	var isEmpty = true;
    	var layer = layers[selectedLayerIndex];
    	
    	layer.frames.some(function(frame, index)
    	{
    		if (!frame.isEmpty)
    		{
    			isEmpty = false;
    			return true;
    		}
    	});
    	
    	if (isEmpty)
    		timeline.deleteLayer(selectedLayerIndex);		
    });

     

    This one will delete all empty layers in the current timeline:

    var doc = fl.getDocumentDOM();
    var timeline = doc.getTimeline();
    var layers = timeline.layers.reverse();
    var total = layers.length;
    var count = 0;
    var deleted = 0;
    
    layers.forEach(function(layer)
    {
    	count++;
    	
    	if (layer.layerType !== "folder")
    	{
    		var isEmpty = true;
    	
    		layer.frames.some(function(frame)
    		{
    			if (!frame.isEmpty)
    			{
    				isEmpty = false;
    				return true;
    			}
    		});
    		
    		if (isEmpty)
    		{
    			timeline.deleteLayer(total - count);
    			deleted++;
    		}			
    	}			
    });
    
    fl.trace(deleted + " of " + layers.length + " layer(s) deleted.");

     

    Regards,

    JC

    Known Participant
    November 8, 2023

    Wow! That worked perfectly!

    Many thanks, dude! ❤️

    kglad
    Community Expert
    Community Expert
    November 8, 2023

    you could use jsfl to do that.