Keyboard Event
Scott Raney
raney at metacard.com
Wed Jul 31 14:26:01 EDT 2002
On Tue, 30 Jul 2002 Simtech Publications <switchedon at hsj.com> wrote:
> > Setting a flag when the key is first depressed is one way to handle this.
>
> Yes. That's how I had to do it in earlier versions of Director before the
> KeyPressed() function.
>
> > How about using a different key, Escape for example? Then you can
> > catch it in a rawkeydown handler in the card or stack script.
>
> I'm converting existing Director programs to Revolution in order to deliver
> them for Mac OS X. The Mac 68k, Mac PPC and Windows versions all use the
> control key. I don't want to risk confusing my customers by using esc for
> the OS X versions.
Your real problem here is a design flaw in all Mac OSs: no keyboard
events are generated when modifier keys are pressed. On Win32 and
UNIX systems you can easily do this in the proper event-driven manner
using a rawKeyDown handler.
> Here is a repeat loop that allows the user to press the control key to
> interrupt several seconds of music and return directly to the main menu...
>
> repeat until the sound is done
> if the controlkey is down then
> play stop
> go to cd "main menu"
> end if
> end repeat
>
> If that works, I wonder why this doesn't?...
>
> on idle
> if the controlkey is down then go to cd "main menu"
> end idle
Unfortunately both of these methods are a bad idea for OS X (the first
is even specficially prohibited by the developer guidelines for that
platform). Please read the following before you go down this road any
further:
http://www.hyperactivesw.com/polling.html
Then search the doc and list archives for examples of using "send
.. in" to do a periodic poll. If it were me, though, I'd just work
around the Mac OS design flaw by accepting any key in a rawKeyDown
handler, not just modifiers.
Regards,
Scott
> Cheers... Bill Lynn, Publisher
> Simtech Publications
> http://www.hsj.com
********************************************************
Scott Raney raney at metacard.com http://www.metacard.com
MetaCard: You know, there's an easier way to do that...
More information about the use-livecode
mailing list