Skip to main content
Inspiring
December 3, 2018
Answered

Movieclip does not play in single frame

  • December 3, 2018
  • 2 replies
  • 2545 views

In AnimateCC HTML5 Canvas I have made the following situation.

In the first frame of the main Timline is a movieclip with an animation, lets call it "myMc".

Lets call the layer in the main Timeline, where myMc is positioned "mcLayer".

The first Frame of the main Timeline stops, with Javascript: this.stop();

The Timeline of myMc does not play, if there is a keyframe in the next Frame of "mcLayer"

myMC plays if there is an normal frame in the next Frame of "mcLayer".

It also plays if there are no more frames on "mcLayer"

What is the rule behind this?

Is this a bug?

This topic has been closed for replies.
Correct answer JoãoCésar17023019

Now 6 years later I trie to program something with advanced Layers activated, following the instructions on the Adobe Website https://helpx.adobe.com/animate/using/timeline-layers.html#advanced-layers 

but it does not make sense or it does not work

Layer=this.getchildbyname("L1");
Layer.getchildbyname("symbol1");
I tried out many things
I made a layer with the name L1 and a Movieclip on it with the name symbol1
At first I changed the code for correct Syntax
getChildByName is not getchildbyname
I tried to out
L1.getChildByName("symbol1);
I have no idea how to get access to a symbol with advanced Layers.

Hi.

 

Make sure all conditions below are true:

- The advanced layers mode is on (Cmd/Ctrl + J > Use Advanced Layers);

- The virtual camera is on the stage;

- The layer you want to target is on the main timeline;

- The layer you want to target is not empty.

 

Then you can access the layer or some instance inside of the layer using dot notation. Like this:

console.log(this.yourLayer, this.yourLayer.yourInstance, this.yourInstance);

 

Regards,

JC

2 replies

Participant
July 26, 2021

While turning off 'Advanced Layers' does work, it's not a good solution. I would like to use the Camera tool as well, so disabling 'Advanced Layers' isn't an option.

 

To illustrate how crippled things become when having 'Advanced Layers' turned on, consider this simple example with 3 Layers (Camera, Actions, Layer with MovieClip with 60 frames of animation):

 

 

Export and play the HTML5 Canvas and observe the MovieClip playing continuously in a loop.

 

Now, add a blank frame in the MC Layer:

 

 

And suddenly the MovieClip doesn't play anymore...

 

But if you instead only extend the MovieClip frame, like this:

 

The MovieClip plays after all (remember the code applied on Frame 1: `this.stop();`).

 

The same thing happens with frames that aren't placed on Frame 1 -- if they span a single frame's length, then they'll be stuck on their internal first frame (in 'Advanced Layers' mode only) until the frame's length exceeds 1.

 

I read somewhere that with Advanced Layers layers are treated as MovieClips with only their first frame being exported or something. Whatever the case, this behavior is super unpredictable and the documentation on Avanced Layers is next to nil. For something that causes so many breaking changes and is now enabled by default, one would expect there to be  better documentation and spread of information online. But alas, Adobe Animate died when Flash got axed 😕😕

JoãoCésar17023019
Community Expert
Community Expert
July 27, 2021

Hi.

 

I agree. It really doesn't make sense.

 

Please report this issue here:

https://www.adobe.com/products/wishform.html

 

Regards,

JC

Inspiring
May 12, 2022

Now 6 years later I trie to program something with advanced Layers activated, following the instructions on the Adobe Website https://helpx.adobe.com/animate/using/timeline-layers.html#advanced-layers 

but it does not make sense or it does not work

Layer=this.getchildbyname("L1");
Layer.getchildbyname("symbol1");
I tried out many things
I made a layer with the name L1 and a Movieclip on it with the name symbol1
At first I changed the code for correct Syntax
getChildByName is not getchildbyname
I tried to out
L1.getChildByName("symbol1);
I have no idea how to get access to a symbol with advanced Layers.
Inspiring
December 3, 2018

For what it's worth, I tried replicating the scene based on your description, and it plays for me in any scenario.  Tested on version 18.0.1 (build 115)

Inspiring
December 4, 2018

Thanks

I think it has to be a bug with version 19.

I made the same Movieclip in version 19.0(build 326) and version 18.02 (build 126). In version 19 is the problem.

You can download the fla Files at:

https://www.on-design.de/test/mc_problem.zip

Its worth for making this tutorial.

Here is a screenshot of my 2 test fla files

Inspiring
December 21, 2018

When I deactivate advanced Layers it works.

Modify / Document / advanced Layers