//In your Main class : public function Main() { levelManager = new LevelManager(ALevel); levelManager.applicationDomain = ApplicationDomain.currentDomain; // to be able to load your SWF level on iOS levelManager.onLevelChanged.add(_onLevelChanged); levelManager.levels = [[Level1, "levels/A1/LevelA1.swf"], [Level2, "levels/A2/LevelA2.swf"]]; levelManager.gotoLevel(); //load the first level, you can change the index. You can also call it later. } private function _onLevelChanged(lvl:ALevel):void { state = lvl; lvl.lvlEnded.add(_nextLevel); lvl.restartLevel.add(_restartLevel); } private function _nextLevel():void { levelManager.nextLevel(); } private function _restartLevel():void { state = levelManager.currentLevel as IState; } // Note that you must create an abstract class : Level1 and Level2 extends ALevel // which extends the State or StarlingState class. From our example : public class ALevel extends State { public var lvlEnded:Signal; public var restartLevel:Signal; protected var _level:MovieClip; public function ALevel(level:MovieClip = null) { super(); _level = level; lvlEnded = new Signal(); restartLevel = new Signal(); // Useful for not forgetting to import object from the Level Editor var objectsUsed:Array = [Hero, Platform, Enemy, Sensor, CitrusSprite]; } override public function initialize():void { super.initialize(); var box2d:Box2D = new Box2D("Box2D"); add(box2d); // create objects from our level made with Flash Pro ObjectMaker2D.FromMovieClip(_level); } }