I'm trying to reuse an intro fla file created by a different developer for a new animation I'm working on in Animate. The problem is that the into keeps looping and I haven't been able to find the magic bullet to get it to stop. It was built in the day of movie clips, so I've gone through and changed all movie clips (that I could find) into graphic symbols and have made sure the looping mode of each graphic symbol is set to "play graphic once." None of that has helped. I don't know if I've missed converting some of them or if there's something else I'm missing, but it's driving me crazy.
Since I'm planning on exporting it as an mp4, I wasn't sure if I could use any stop(); actions or not. Since I didn't know, I decided to try, so I put a stop action at the end of each of the graphic symbols in the introduction. The thing STILL loops. It doesn't loop immediately - waits a bit and then starts all over again. There's a theme song in the background, and even IT starts again, so that I end up with 2, and then 3, and then 4 different copies of music all playing on top of one another. I assume it would continue indefinitely.
What am I missing?
ActionScript doesn't work inside a Graphic symbol. You could have left them as MovieClips an put a stop() action in the last frame inside the MovieClip.
A Graphic that is set to play once will stop playing when it gets to the last frame, but, if the entire timeline is looping the Graphic will start again.
What you could do, if you want to keep things as Graphics, is to add another layer to the main timeline, select the last frame of that layer, and insert a keyframe. Then in the Actions panel for that keyframe you would put a stop(); action.
You can export to video and the scripts will work.
When I started, they were all movie clips with stop actions on the final frame. That didn't seem to be working. That's why I thought I needed to change them. And yes - the way you described doing it with the graphic symbols, i.e., by adding a new layer, putting a keyframe at the end, then adding stop to that last keyframe - that's what I did. It's as if the intro itself works, no matter what I do - but it's looping on the main timeline.
The intro is on 6 layers - from keyframe 1 - 266. I tried putting a keyframe with a stop action on frame 266 on each of those 6 layers. That stops the intro from looping, but it also stops all the layers above those 6, i.e., everything that comes after the intro. I can try changing them all back to movie clips if you think that will help - but I'm pretty sure they all had stops on them as movie clips - and I'm also pretty sure I did the stops correctly when I converted them to graphic symbols.
I can just do Enter and it plays all the way through (frame 540), which kind of surprises me since I've got all the stops on keyframe 266 on the 6 lower layers. But, of course, I can't see the animations in the graphic symbols in the intro - since those are not on the main timeline. But when I do Ctrl Enter (or Control > Test Movie), I get the opposite, i.e., what I described in the first paragraph.
Should I try converting everything in the intro back to movie clips?
Got it! Much easier than I anticipated. I just needed to add a stop(); on the main timeline at the end of where I'm working. That was the issue - the entire movie kept looping. It was a bit deceptive because I was just working on a few frames at a time, so when it DID loop, it was playing over the part where I was working because the timelines in the movieclips in the Intro were longer than my main timeline. So I had two things going at once.
So new question - do fla files loop by default or had I changed some setting that was making it loop? I don't remember having to always put a stop at the end of an animation before - but I may have just forgotten.
Anyway, whew! Now I can finish this thing!
Thanks for your help.
With ActionScript you would need to add a stop(); action, to stop the whole timeline from looping. With HTML5 Canvas (which you don't want to use if the goal is to export to video) there is a publishing setting to control whether the timeline will loop. It seems to be on by default as well. You could uncheck the box, and a this.stop(); action will be added for you.
Excellent! Thanks so much for your help.