Skip to main content
Participant
August 30, 2023
Answered

Can't Select a Layer by Name in JSFL

  • August 30, 2023
  • 2 replies
  • 399 views

I'm stuck with trying to select a layer by name.
I must be missing something super basic but I can't figure it out.

var dom = fl.getDocumentDOM();
var timeline = dom.getTimeline();

var targetLayer = timeline.findLayerIndex('Keys')
if (targetLayer !== undefined) {
	fl.trace(targetLayer)
	timeline.currentLayer = targetLayer;}

// If the target layer is not found, create a new layer and select it
else {
	timeline.addNewLayer('Keys');}

 The fl.trace(targetLayer) returns a number (7), but the selected layer doesn't change. I also tried setSelectedLayers with the same result.

timeline.setSelectedLayers(targetLayer);

 If I put a plain number in place of targetLayer it selects that layer no problem. Is this a bug or is there a work around?

This topic has been closed for replies.
Correct answer kglad

targetLayer (if it's defined) is an array.  ie, if you use unique layer names, try:

 

timeline.setSelectedLayers(targetLayer[0]);

2 replies

JoãoCésar17023019
Community Expert
Community Expert
August 30, 2023

Hi.

 

Please try this:

var tl = fl.getDocumentDOM().getTimeline();
var layerIndex = tl.findLayerIndex("Keys");
tl.setSelectedLayers(layerIndex[0]);

 

Regards,

JC

kglad
Community Expert
kgladCommunity ExpertCorrect answer
Community Expert
August 30, 2023

targetLayer (if it's defined) is an array.  ie, if you use unique layer names, try:

 

timeline.setSelectedLayers(targetLayer[0]);
Participant
August 30, 2023

That makes sense, thank you!

kglad
Community Expert
Community Expert
August 30, 2023

you're welcome.