• Create Account

## Game scenes transition in AS3

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

2 replies to this topic

### #1JETeran  Members

309
Like
0Likes
Like

Posted 17 August 2012 - 07:58 AM

Hello everybody.

I'm making a game in AS3 and, based on googling and your help in this forum, I'll have the game scenes (game, mainmenu, credits, ...) in different MCs.

So, what I want to do is have control over them and make them appear when the user presses a button (already acomplish this)

For example, make a new MC called Intro, as soon as Intro finish, delete it and make MainMenu MC appear; if I click Credits, delete MainMenu and make Credits appear, and so on.

What is the best method to accomplish this??

Thanks so much in advance !!

BTW
http://www.newgrounds.com/bbs/topic/868016#bbspost15599445_post_text

I tried to use it in so many ways but I didn't acomplished my objectives.

Success with courage,

José Eduardo Terán

Project Management & Game Programming. DSK International Campus

Indie Game Developer

### #2IronyGames  Members

134
Like
1Likes
Like

Posted 17 August 2012 - 12:49 PM

Quickest way is to addChild() when you want to add the scene to the stage (remember to set the coords!), and removeChild() when you want it gone.

Scenes, therefore, should extend Sprite or MovieClip or so; basically having a huge MC-container for all the stuff in the different scenes. Or what you have is just fine, remember to export for AS3.

Couple tips:
• First add the new scene so it's atop of the stage, then remove the old scene. Doing viceversa will make an ugly effect where there's nothing for a second.
• The MCs might take time to be added, you might want to control that.
• Make sure to make the MC instances point null when you're done with them so the garbage collector can free memory!

Another choice is to add all the childs and to have their alpha = 0 unless they are needed. This is quicker for time, but more memory-expensive I think, and besides they have to have a stop button when they're not opaque -- meaning it's not their turn.

I was unaware of your AS3 level so I tried to explain as much as possible.

### #3JETeran  Members

309
Like
0Likes
Like

Posted 18 August 2012 - 07:51 AM

Hey IronyGames, thanks so much for your help.

Before I check very carefuly your suggestions, I want to show you what I did:

package  {

import flash.display.MovieClip;
import flash.events.Event;

public class ScenesChange extends MovieClip {

public function ScenesChange() {
//vars
var introScene:IntroScene = new IntroScene;
var endIntroScene:Boolean = false;

function checkStates(event:Event) {
if (introScene.endIntroScene == true) {
removeChild(introScene);

}
}

}

}

}


Ok now, I have 2 MCs in the library, one called IntroScene and another called MenuScene. At the end of introScene (instance of IntroScene) I have a flag that tells me endIntroScene = true;

Ok with this code, so far so good. But I'm receiving this error/warning: ArgumentError: Error #2025. Even though it runs correctly.

Now I have some Qs:

- (READ EDIT) Can I keep the function ScenesChange running and check when a stage ends? (I think it's better to finish it when it's function it's over, how can I do it?
- I will have many stages in the game (for example a small curtain that appears in each action of the game (press play, credits, ... , during the game when you enter the mission or die, and so on) Can I control it with this flag method?

This is the main problem that drives me crazy ! I'm handling the rest of the game very good.

Thanks so much for your guidance !!

EDIT:
Ok what I did is create a new function inside checkStates and in that new function, create the MenuScene and then removeEventListener the checkStates listener; and so far so good ! That strange Error #2025 is not appearing anymore.

My other Q after all this is to know if I am doing the right thing? Of course I do because it works, but is a good way to do it?!

Thanks guys once again !!!!

Edited by JETerán, 18 August 2012 - 08:30 AM.

Success with courage,

José Eduardo Terán

Project Management & Game Programming. DSK International Campus

Indie Game Developer