• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

how can I get the length of a layer in JSFL script?

New Here ,
Nov 08, 2018 Nov 08, 2018

Copy link to clipboard

Copied

Hi

I wanted to change shapes' stroke thickness of all symbols at once.

Using following script somehow only changes thickness on 1st frame of a  symbol.

What I think I need is to get the length of a layer and make function repeat.

When I tried  (var i = 0; i<3; i++) it worked fine.

I am a newbie to JSFL. Can anyone help?

var stroke_width = 1.6;

var scale_Type = "none";

fl.trace("Changing all strokes width to "  + stroke_width);

function changeStroke(element, width, scale)

{

    if (element.elementType == "shape") {

        var stroke = element.getCustomStroke();

        stroke.thickness = width;

        stroke.scaleType = scale;

        element.setCustomStroke(stroke);

        // recurse for groups

        for (var iSubE in element.members) {

            var sub_element = element.members[iSubE];

            changeStroke(sub_element, width, scale);

        }

    }

}

var libItems = fl.getDocumentDOM().library.items;

for (var item_it in libItems)

{

    var item = libItems[item_it];

    if (item == undefined || item.symbolType == undefined)

    {

        continue;

    }

     var timeline = item.timeline;

     var tlArray = fl.getDocumentDOM().getTimeline().getSelectedLayers();

    for (var layer_it in timeline.layers)

  {

  for (var i = 0; i<tlArray.length; i++)

    {

        var layer = timeline.layers[layer_it];

        var frame = layer.frames;

        for (var element_it in frame.elements)

{

        var frame = layer.frames;

}

        for (var element_it in frame.elements)

        {

            var element = frame.elements[element_it];

            changeStroke(element, stroke_width, scale_Type);

        }

    }

  }

}

Views

472

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Adobe Employee , Nov 09, 2018 Nov 09, 2018

This gives you the length of a particular layer :

     var layerIndex = 0;

     fl.getDocumentDOM().getTimeline().layers[layerIndex].frames.length;

This shows max frames including all the layers in timeline:

     fl.getDocumentDOM().getTimeline().frameCount;

Votes

Translate

Translate
Adobe Employee ,
Nov 09, 2018 Nov 09, 2018

Copy link to clipboard

Copied

LATEST

This gives you the length of a particular layer :

     var layerIndex = 0;

     fl.getDocumentDOM().getTimeline().layers[layerIndex].frames.length;

This shows max frames including all the layers in timeline:

     fl.getDocumentDOM().getTimeline().frameCount;

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines