Очистка памяти - это сложная вещь с Flash, поэтому нужно правильно реализовать ее настройку объектов в первой игре для облегчения очистки, а не для принудительного удаления. Когда вы хотите удалить объект из памяти, вы делаете это, удаляя любую ссылку на него, а затем флэш-память помечает его для сбора мусора. Затем Flash позднее удаляет объект из памяти.
Чтобы объект был готов к сбору данных, он не может иметь никакого соединения с другим объектом.
, так что если у вас есть объект, который имеет единственное соединение с MovieClip, и у фрагмента ролика нет другого отношения, то, если вы установите его на ноль, вы удалите его.
если у вас есть два объекта, которые указывают на него, если вы удалите одну ссылку, установив для нее значение null, мувиклип не будет удален.
Более того, если у вас есть 2 или более видеоклипа, которые имеют сеть соединений, удаление этих объектов требует также и того, что эти соединения будут разорваны. Например, если у вас настроен уровень со многими персонажами и слушателями, удаление lavel movieClip не очистит его.
Одним из способов разрыва этих соединений является добавление событий onRemovedFromStage, которые удаляют дальнейшие дочерние элементы, слушатели и объекты. Я начал использовать расширение casaLib movieclip - CasaMovieClip , которое имеет функцию removeChildrenAndDestroy . это немного облегчает задачу, но для реализации в более старом проекте потребуется некоторое время.
Во всяком случае, вы обнаружите, что есть много сайтов, обсуждающих это, хорошее место для начала - грант блог Скиннера