I had some weird deal where I had 2 timers calling the same
EventHandler (copy and paste mistake) and even though i stopped both
Timers one kept going
Not that this is optimal but I would try offsetting your Timers 100,
101, 102, etc and see if that works or running one function and using
removeEventListener (although that may throw an exception?).
--- In flexcoders@yahoogroups.com, Daniel Thompson [EMAIL PROTECTED] wrote:
So, I tried to post this over to Flashcoders, but something funky is
going
on over there. I would like to try here, as it is an ActionScript 3
question, and I think the people here may be able to help. However,
this is
just an ActionScript project for now (hopefully, not for long).
I posted earlier about timers going wonky when I tried to disable my
application. I was attempting to remove all the display list items
and then
reinstantiate them later. I'm no longer trying to do that, but still am
having problems when I come back to this window, to get the timers
to start
up again.
When I set a breakpoint in the classes' load() method, I see the
timer being
instantiated and set and told to run. The first time I load the class,
everything works fine. When the user clicks the expand button and
opens up
another window, the class runs an unload method which stops the
timers. When
you come back to the window, I can see the very same breakpoint hit that
sets up the timers and calls start. This time, however, the timers don't
fire.
I've been working several days now trying to get around this; any
and all
advice/help is greatly appreciated. I have tried creating the timers
in the
constructor (I may try that again just for good measure), I've tried
resetting the timers... I've tried setInterval. Nothing is working
for me.
Should I post this to Flexcoders? There is (of course) more AS3
stuff going
on over there. I'm not using Flex, though... just ActionScript 3.
public override function load():void {
if (!_initialized) {
// I'll set a breakpoint around here and it will hit every time.
// But after unload is called, none of the timer handlers will
// ever be invoked.
_playbackTimer = new Timer(100);
_playbackTimer.addEventListener(TimerEvent.TIMER,
playbackTimerHandler);
_progressTimer = new Timer(100);
_progressTimer.addEventListener(TimerEvent.TIMER,
progressTimerHandler);
_loadCheckTimer = new Timer(100);
_loadCheckTimer.addEventListener(TimerEvent.TIMER,
loadCheckTimerHandler);
_loadCheckTimer.start();
_stateTimer = new Timer(100);
_stateTimer.addEventListener(TimerEvent.TIMER,
stateTimerHandler);
_stateTimer.start();
_statusTimer = new Timer(1000);
_statusTimer.addEventListener(TimerEvent.TIMER,
statusTimerHandler);
_statusTimer.start();
_queueLoad = true;
return;
}
...
}
public override function unload():void {
if (_progressTimer != null _progressTimer.running) {
_progressTimer.stop();
}
if (_playbackTimer != null _playbackTimer.running) {
_playbackTimer.stop();
}
if (_stateTimer != null _stateTimer.running) {
_stateTimer.stop();
}
if (_statusTimer != null _statusTimer.running) {
_statusTimer.stop();
}
...
_initialized = false;
}
Thanks,
-DT