Solved

load mc via loadMovie and play only once!

Posted on 2008-06-23
11
1,687 Views
Last Modified: 2013-11-11
Hello,

I think this should be easy, but I must be missing something.  I have a two frame movie.  First frame is stop().  Second frame has a mc on it.  I export this to a swf.

I load the swf in my movie.  I would like it to play once and then I would like to take it off the stage.  But, it keeps looping and looping.  What to do?

Code below.

Many thanks in advance!
_root.createEmptyMovieClip("myIntroAnim",_root.getNextHighestDepth());

		for (i=0; i<=1; i++){

		_root.myIntroAnim.loadMovie(path+"Section1IntroAnim.swf");

		setProperty("myIntro",_x,80);

		setProperty("myIntro",_y,60);

		}

        _root.myIntroAnim.gotoAndPlay(2);

		_root.myIntroAnim.removeMovieClip();

		trace("I am in intro");

Open in new window

0
Comment
Question by:1Cougar
  • 4
  • 4
  • 3
11 Comments
 
LVL 8

Expert Comment

by:Dreammonkey
ID: 21847280
change the 7th line to goToAndStop like i code below,
or just put a stop(); in the actions layer ...
 
_root.createEmptyMovieClip("myIntroAnim",_root.getNextHighestDepth());

		for (i=0; i<=1; i++){

		_root.myIntroAnim.loadMovie(path+"Section1IntroAnim.swf");

		setProperty("myIntro",_x,80);

		setProperty("myIntro",_y,60);

		}

        _root.myIntroAnim.gotoAndStop(2);

		_root.myIntroAnim.removeMovieClip();

		trace("I am in intro"); 

Open in new window

0
 
LVL 8

Expert Comment

by:Dreammonkey
ID: 21847319
sorry, this one is better, I guess...
_root.createEmptyMovieClip("myIntroAnim",_root.getNextHighestDepth());

		for (i=0; i<=1; i++){

		_root.myIntroAnim.loadMovie(path+"Section1IntroAnim.swf");

		setProperty("myIntro",_x,80);

		setProperty("myIntro",_y,60);

		}

        _root.gotoAndStop(2);

		_root.myIntroAnim.gotoAndPlay(2);

		_root.myIntroAnim.removeMovieClip();

		trace("I am in intro");

 

Open in new window

0
 

Author Comment

by:1Cougar
ID: 21847449
Hi,

I have a 1 frame movie run in actionscript, so I don't want to have the root go to frame 2.  The external movie plays fine until I load it in the main movie.  Frame 1 has the mc on it with the action and Frame 2 has a stop().  Movie plays 1 time and then stops.  But, when I load it in main movie, it loops over and over and it seems like I can't control the movie.  Maybe there are too many nested movie clips?  This is how it is:

Main movie-->mc myIntroAnim --> loads Section1IntroAnim.swf -- has 2 frames, frame 1 with mc and frame 2 with stop.

Thanks again,
0
 
LVL 8

Expert Comment

by:Dreammonkey
ID: 21847523
Ok, how about this one?
_root.createEmptyMovieClip("myIntroAnim",_root.getNextHighestDepth());

		for (i=0; i<=1; i++){

		_root.myIntroAnim.loadMovie(path+"Section1IntroAnim.swf");

		setProperty("myIntro",_x,80);

		setProperty("myIntro",_y,60);

		}

        

		_root.myIntroAnim.gotoAndPlay(2);

		_root.myIntroAnim.removeMovieClip();

		trace("I am in intro");

		stop();

Open in new window

0
 
LVL 18

Expert Comment

by:Antonio Estrada
ID: 21847987
Why are you using removeMovieClip? removeMovieClip(); is the counter method for attachMovie();, not loadMovie(); ...You should use unloadMovie instead.

unloadMovie(_root.myIntroAnim);

Another thing, if the loaded MovieClip has 2 frames and you're telling him to gotoAndPlay(2) it could be the cause for the looping, why don't you use gotoAndStop(2)

-V
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:1Cougar
ID: 21848900
Hi there and thanks for your comments.  I will change the remove Movie Clip statement.  I have gotten the movie to stop looping by putting another stop() in the nested mc (swf).

Now I have another issue.  The main movie doesn't wait for the swf to finish playing before moving ahead....what can I do to stop the main movie to wait until the loaded swf has finished?

Thanks a lot for any ideas!

Cheers!
0
 
LVL 18

Expert Comment

by:Antonio Estrada
ID: 21848985
Well since you're loading and unloading pretty much at the same time you can't see anything. A way make sure the entire loaded swf is played is the following:

<code>

Or something along these lines, would be better to see your *.fla to see it working/failing.

Good luck.

-V
_root.createEmptyMovieClip("myIntroAnim",_root.getNextHighestDepth());

                for (i=0; i<=1; i++){

                _root.myIntroAnim.loadMovie(path+"Section1IntroAnim.swf");

                setProperty("myIntro",_x,80);

                setProperty("myIntro",_y,60);

                }

        

                _root.myIntroAnim.gotoAndPlay(2);

                _root.myIntroAnim.onEnterFrame = function() {

                    _root.stop();

                    if(this._currentframe == this._totalframes) {

                        _root.play();

                        unloadMovie(this);

                    }

                }

                trace("I am in intro");

                stop();

Open in new window

0
 

Author Comment

by:1Cougar
ID: 21849705
Hi,

Your suggestion has improved performance in that it is stopping, but it does not move forward.  In fact, I put a "trace" statement inside of the function myIntroAnim.onEnterFrame and it never executes....why would it never go into the function?

Any ideas?


0
 
LVL 18

Expert Comment

by:Antonio Estrada
ID: 21850317
Interesting.

Looks like something's wrong with the loadMovie method, I'll create a test *.fla for you to use. Do you have Flash 8 or CS3?

-V
0
 
LVL 18

Accepted Solution

by:
Antonio Estrada earned 500 total points
ID: 21850527
Ok, I assume it's Flash 8.

Check it out and let me know if you have any questions.

http://evilrealm.polygonized.com/IntroLoader.zip

It has two files, loader.fla and childMovie.fla. The "childMovie" is the one containing the Intro animation.

-V
0
 

Author Comment

by:1Cougar
ID: 21854170
Hi and thanks!  Your code is perfect and that is now working....but, still more issues.  Will post another question.

Cheers!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Flash Player White Screen Facebook 5 750
Action Script commands 4 305
Video sharing with user login 3 197
System Center Configuration Manager 2012R2 7 78
This is intended to introduce all collision detection principles in flash, their strengths, weaknesses and workarounds. The main method for Collision Detection in flash is using hitTestObject. But unless you'll be pushing rectangular shapes without …
This article describes a solution to a problem of subloading one movie into another when they have different SWF versions. Sometime back, I was working on an ActionScript project while I came across an interesting fact which I would like to share…
The goal of the tutorial is to teach the user how to select the video input device. Make sure you have an input device that in connected and work and recognized by Adobe Flash Media Live Encoder and select it in the “video input” menu.
The goal of the tutorial is to teach the user how to select which audio input to use. Once you have an audio input plugged into the laptop or computer, you will go into the audio input settings and choose which audio input you want to use.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now