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

Animate HTML5, how to reference nested movieclips using a variable

Community Beginner ,
Apr 13, 2019 Apr 13, 2019

In an HTML5 canvas file, I have a bunch of sequentially numbered movieclip instances I want to stop playing using a repeat loop.

The basic syntax I use to reference a clip directly is:

this.data_rings.ring1.stop()

My problem is I can't determine how to reference the clips using a variable. Trying variations of the following has no effect (clips continue to play):

for (i = 1; i < 10; i++) {
  theClip
= "data_rings.ring" + i;
 
this.theClip.stop();
}

I'm guessing this has something to do with scope but don't know what to change (moving "this" in and out of the variable has no effect). Any suggestion for how to fix?  Thanks in advance.

315
Translate
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

Community Expert , Apr 13, 2019 Apr 13, 2019

Hi.

You need to first execute your code with fully initialized children. Then you can use bracket notation to access each child by its name using concatenated strings. Like this:

stage.on("drawstart", function(e)

{

    for (var i = 1; i < 10; i++)

          this.data_rings["ring" + i].stop();

}, this, true);

More info about the drawstart event:

https://createjs.com/docs/easeljs/classes/Stage.html#event_drawstart

Regards,

JC

Translate
Community Expert ,
Apr 13, 2019 Apr 13, 2019
LATEST

Hi.

You need to first execute your code with fully initialized children. Then you can use bracket notation to access each child by its name using concatenated strings. Like this:

stage.on("drawstart", function(e)

{

    for (var i = 1; i < 10; i++)

          this.data_rings["ring" + i].stop();

}, this, true);

More info about the drawstart event:

https://createjs.com/docs/easeljs/classes/Stage.html#event_drawstart

Regards,

JC

Translate
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