Практика показывает, что хорошо бы сразу предусмотреть метод remove для класса-левела. И при создании нового уровня честно чистить старый (удалять листенеры, останавливать звуки и т.д.) перед удалением.
Что-то типа:

Код AS3:
val iGameLevel:IGameLevel;
private function openLevel(levelIndex) : void
{
if (iGameLevel)
{
iGameLevel.remove();
}
iGameLevel = new _gameLevels[levelIndex];
}
Впрочем, возможно, это только у меня такая необходимость.
