The way I rationalize it is along your line of thinking, Jacque.

Basically I see a system message as something only the engine can create. As soon as you use "send", you are creating a custom user- level message like any other. What you have sent is NOT a system message any more, it's just some sort of clone which lacks its "system" identity. So it will just travel the message hierarchy the same way as if you had changed the message to "BriansKeyDownHandler".

I'm sure there are exceptions, but I think Hypercard had more of a anything goes attitude. If you send a message, it would actually simulate the behavior whenever possible. Perhaps the liberal use of doMenu for even system tasks (copy / paste for example) instilled this deeply?

Ideally (in my mind), if Rev wants to be strict then it should just not allow you to "send" system messages. Either pass them, don't pass them, or use send with a non-reserved name. Then there would be little room for expecting them to continue to behave as system messages.

FWIW.

Richard Gaskin wrote:

Perhaps HC allowed you to send message to any arbitrary point in the message path beyond the current script regardless whether or not there's a handler for it there as a more verbose alternative to "pass". But as I explained in detail earlier there are reasons why Rev doesn't work the same way with messages, and instead requires that you use the method which is simpler and faster in both xtalks, "pass <messageName>".

I think Craig's question is more basic. He wonders why sending some keywords to a stack will then pass that message along the hierarchy automatically if the target object doesn't have a matching handler, but sending other keywords doesn't. I.e.:

send "beep" to this stack -- passes it through the message path

send "keydown" to this stack -- stops the message with an error at the stack level

I have an untested theory. Command keywords will pass through the hierarchy, but system messages won't. ("Beep" is a command. "Keydown" is a system message.) I'm not sure what built-in functions would do but I'm guessing they'd act like command keywords.

No time to test or verify; maybe someone else can.
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to