I cannot for the life of me work out how to stop actions and events on loaded external SWFs. Failure to do so leads to an increasing use of memory to the point where browsers on lower spec machines actually crash as resources are used up.
The situation is this:
I have a main page frame which loads and displays external swfs when users click menu buttons.
One specific swf used on the opening home frame is an image slideshow which loads images into an array, and once a certain number are loaded, creates a timer to control the image rotation. On each TimerEvent.TIMER, the next image is faded in.
I’ve tuned the slideshow swf so that the memory it consumes is bounded.
The problem is this:
In the main page frame, when you navigate away to one of the other site sections (causing the home frames, including the slideshow, to close), despite the frames being removed from the display list, and unload() being called on the slideshow’s parent Loader, the timer events continue to fire. Worse, on reopening the home frames, a new slideshow is instantiated. It can be easily imagined that a user who spends some time on the site and returns to the home page several times will find himself with multiple slideshows which, although they are not visible, clog up his resources significantly.
I need to find out how to either stop the timer on the external slideshow swf, or remove the TIMER event listener, also created within the external swf.
Hope that’s clear - any help greatly appreciated!