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

JSFL Perfecting the merge layer functionality,Ask for help.

Enthusiast ,
Aug 11, 2018 Aug 11, 2018

Copy link to clipboard

Copied

At present, the function has met my needs.

But it's not humanized.

Select layer must keep shist selection from bottom.

Because the new layer is on the 1 floor of the active layer.

If I choose from the top down, the active layer is the bottom and the new layer is in the middle of the layer.

However, copy and paste will be pasted to the top,@@

So the layers are messed up.

I hope to improve this function.

1,I want the new layer to be at the top of all selected layers.or the bottom

2,Copy and paste, you can find the merge layer and paste it inside, instead of pasting it into a fixed layer.

These are the problems I need to solve.

Hope to help me perfect this JSFL.

It's a great help for animation.

Perfect function, others can also use, in the production of animation, especially traditional animation will help a lot of people.

var doc = fl.getDocumentDOM();
var tl = fl.getDocumentDOM().getTimeline();
var selFrames = tl.getSelectedFrames();
var frameLength = selFrames[2] - selFrames [1];

fl.getDocumentDOM().getTimeline().addNewLayer("Merging");
tl.currentFrame = selFrames[2]-1;
for (i=0; i<frameLength; i++)
{  
for (n=0; n<selFrames.length; n+=3)
{
  layerNum = selFrames;
  curFrame = tl.currentFrame;
  tl.setSelectedLayers(layerNum, false);
  if(tl.currentFrame == tl.layers[layerNum].frames[curFrame].startFrame)
  {
   tl.setSelectedFrames(selFrames);
   tl.currentFrame = curFrame;
   tl.insertKeyframe();
   doc.selectAll();
   doc.clipCopy();
   tl.setSelectedLayers(selFrames[0], true);
   doc.clipPaste(true);
   n = selFrames.length
  }
}
tl.currentFrame --;
}

JoãoCésar

rayek.elfin

Preran

Demo why need.

If you don't have a merged layer, it means that I need to copy each frame to the new layer, and if it's a lot of frames, it's a huge amount of work.

Of course I'm just a simple demo.If it is a standard animation, the work is more, cumbersome copy frame modify frame, make the production become painful

1199.gif

1129.gif

Views

807

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
Enthusiast ,
Aug 12, 2018 Aug 12, 2018

Copy link to clipboard

Copied

I found the code to find the layer name.

Now, whatever the order of choice,

can be pasted into the merge layer.

There is only one problem to be solved now.

How to get it to "merge" layers,

Display at the top or bottom of all selected layers

timeline.reorderLayer(layerToMove, layerToPutItBy [, bAddBefore])

This code can adjust the order, but you need to specify the layer.

How to deal with this, because the choice of the layer has a lot.

var doc = fl.getDocumentDOM();
var tl = fl.getDocumentDOM().getTimeline();
var selFrames = tl.getSelectedFrames();
var frameLength = selFrames[2] - selFrames [1];

fl.getDocumentDOM().getTimeline().addNewLayer("merging");

tl.currentFrame = selFrames[2]-1;
for (i=0; i<frameLength; i++)
{  
for (n=0; n<selFrames.length; n+=3)
{
  layerNum = selFrames;
  curFrame = tl.currentFrame;
  tl.setSelectedLayers(layerNum, false);
  if(tl.currentFrame == tl.layers[layerNum].frames[curFrame].startFrame)
  {
   tl.setSelectedFrames(selFrames);
   tl.currentFrame = curFrame;
   tl.insertKeyframe();
   doc.selectAll();
   doc.clipCopy();
   tl.setSelectedLayers(selFrames[0], true);
   var layerIndex = fl.getDocumentDOM().getTimeline().findLayerIndex("merging");
            fl.getDocumentDOM().getTimeline().setSelectedLayers(layerIndex[0], true);
   doc.clipPaste(true);
   n = selFrames.length
  }
}
tl.currentFrame --;
}

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
Community Expert ,
Aug 13, 2018 Aug 13, 2018

Copy link to clipboard

Copied

Hi.

I'm kinda lost here.

Do you need to get the shapes from all layers in each frame and move them to one single layer? Like when we cut all and them paste all in the same layer?

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
Enthusiast ,
Aug 13, 2018 Aug 13, 2018

Copy link to clipboard

Copied

Now I have a problem where my code can be used, but usually the first use will miss several keyframes.

After several errors, the layers are merged properly.

I don't know where the problem is.

The sort required

The merge layer will be in the middle when selecting from the top.

It's the right choice at the bottom.

I want the merge layer to be at the top of the selection layer, not the middle

排序.gif

Manual operation

If there's no JSFL, that's how I operate.

Not only operational trouble.

Errors are also prone to occur.

If it's a hundreds of-frame animation, it's a lot of work.

1需要.gif

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
Enthusiast ,
Aug 14, 2018 Aug 14, 2018

Copy link to clipboard

Copied

Strange problems are getting more and more.

found that the underlying layer could not be merged.

It's starting to be unusable now.

jsfl.gif

I find that if there are no keyframes in the last frame. There will be an error message.

TypeError: tl.layers[layerNum].frames[curFrame] is undefined.

I can't use it now.

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
Enthusiast ,
Aug 15, 2018 Aug 15, 2018

Copy link to clipboard

Copied

LATEST

The code I wrote sucks.

It is now found that the bottom layer is not replicated because of the new addition of the frontal layer.

This resulted in a less than 1-storey selection.

if(tl.currentFrame == tl.layers[layerNum].frames[curFrame].startFrame)

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