Мне трудно понять, что я ожидаю, чтобы быть основным принципом в управлении памятью. Надеюсь, кто-то может предложить объяснение, которое поможет мне лучше понять.
Я объявил одну переменную класса slideShow.
var slideShow:SlideShow;
function addSlideShow(e:MouseEvent):void {
slideShow = new SlideShow();
addChild(slideShow);
}
function clearSlideshow (e:MouseEvent):void {
removeChild(slideShow);
}
Если я дважды вызываю функцию addSlideShow, два экземпляра класса SlideShow будут созданы и добавлены на сцену.
Если я вызываю clearSlideshow дважды, со сцены удаляется только один экземпляр. Второй вызов создает ошибку.
Я думаю, что каждый раз, когда я вызываю addSlideShow, переменная slideShow будет перезаписываться новым экземпляром SlideShow, поэтому будет создан только один экземпляр. Это явно не тот случай.
Имея это в виду, является ли следующий правильный способ обработки вещей, где я удаляю и обнуляю переменную slideShow перед созданием нового экземпляра?
var slideShow:SlideShow;
function addSlideShow(e:MouseEvent):void {
try {
removeChild(slideShow);
slideShow = null;
} catch (e:Error) {
trace(e);
}
slideShow = new SlideShow();
addChild(slideShow);
}
function clearSlideshow (e:MouseEvent):void {
try {
removeChild(slideShow);
slideShow = null;
} catch (e:Error) {
trace(e);
}
}
Спасибо за любую помощь, которую вы можете предложить.