Yes, there's a trick of the trade.  It goes like this:

1) MIAW that wants to forget itself sets a global variable:
global gWindowToKill
gWindowToKill =the activeWindow

Note that it doesn't do the "forgetting" itself.

2) The stage (whatever your main movie is), on a regular basis (idle loop 
or exit frame), does this:

global gWindowToKill
if not voidp(gWindowToKill) then
   forget gWindowToKill
   gWindowToKill =VOID
end if

This way the forgetting is always done in the context of the stage.  What 
you're running into is that you're forgetting the very movie you're 
executing, and effectively pulling the rug out from under its feet and the 
call stack is left with nothing to return to.  The proper way around it is 
to just set a flag, and when the stage is executing, then it can safely 
remove the window.

If you are running a lot of windows that might be closing more or less 
simultaneously, then you'll probably instead want to use not a single 
variable but perhaps a list of windows that would need to be killed, so you 
don't forget anyone.

- Tab


At 09:03 AM 3/20/02 -0800, Mattie Wells wrote:
>I've developed a presentation with approximately 25 MIAWs every time I try
>to use 'forget window' I receive a projector error and the projtor.exe
>crashes. I've all so been having the same problem with 'close window'. Is
>there a little trick of the trade im not implementing or is this just a
>director problem?
>
>Thanks for help!
>Matie Wells  :)->--<
>http://www.abetting.net

[To remove yourself from this list, or to change to digest mode, go to 
http://www.penworks.com/lingo-l.cgi  To post messages to the list, email 
[EMAIL PROTECTED]  (Problems, email [EMAIL PROTECTED]). Lingo-L is for 
learning and helping with programming Lingo.  Thanks!]

Reply via email to