Все, что вы делаете, переходя к другому кадру - это убираете ползунок со сцены.Если он содержит внутренние прослушиватели, которые получают события, вам необходимо отключить их.Вы можете попробовать прослушать событие removeFromStage внутри slideShow_mc, а затем вызвать функцию уничтожения на вашем слайдере.
//inside slideShow_mc:
//define slides in a wider scope so we can kill it later:
var slides:SlideShow;
//listen for this container being removed
this.addEventListener(Event.REMOVED_FROM_STAGE,onRemoved);
//load slide function
function loadSlides(xml_file:Array):void
{
slides = new SlideShow(xml_file);
addChild(slides);
slides.x = 0;
slides.y = 0;
}
//remove handler
function onRemoved(evt:Event):void
{
this.addEventListener(Event.REMOVED_FROM_STAGE,onRemoved);
if(slides != null) {
//call a function in the SlideShow class to kill its internal workings
slides.destroy();
//free up the object for gc
slides = null;
}
}
Очевидно, slides.destroy()
- это гипотеза с моей стороны.Возможно, в вашем классе есть функция, которая закрывает его поведение, или вам, возможно, придется создать ее, и она может не называться уничтожить.