before vs on in behavior scripts

Jan Schenkel janschenkel at yahoo.com
Thu Mar 20 09:43:28 EDT 2014


Hi Scott et al,

The 'after' handler in the behavior script will be executed even if the control script itself contains an 'on' handler which forgets to 'pass' the message. This is really useful for custom controls where you want to allow the developer to implement standard message handlers but ensure the control instance returns to a normal state.

Let's say you have your own implementation of a button control.
Your behavior script would handle 'before mouseDown' to turn on the hilited appearance, and handle 'after mouseUp' and 'after mouseRelease' to turn off the hilited appearance. Now the developer can simple handle 'on mouseUp' to execute his business logic, and doesn't have to remember to include a 'pass mouseUp' to ensure the appearance is restored.

At first I was skeptical about behaviors, as I could do everything I needed using frontscripts and backscripts. Its convenience was in having all code in one place, but there were still waysd for the custom control user to mess things up (by not passing messages). So thanks to the addition of 'before' and 'after' message handlers and chained behaviors, this feature has really matured and everyone should use it :)

Jan Schenkel.
=====
Quartam Reports & PDF Library for LiveCode
www.quartam.com

=====
"As we grow older, we grow both wiser and more foolish at the same time."  (La Rochefoucauld)

--------------------------------------------
On Tue, 3/18/14, Scott Rossi <scott at tactilemedia.com> wrote:

 Subject: Re: before vs on in behavior scripts
 To: "LiveCode Mail List" <use-livecode at lists.runrev.com>
 Date: Tuesday, March 18, 2014, 7:54 PM
 
 I didn't realize it until just now,
 but this is the order of events:
 
 before mouseUp
    answer "A"
 end mouseUp
 
 on mouseUp
    answer "B"
 end mouseUp
 
 after mouseUp
    answer "C"
 end mouseUp
 
 
 Really cool stuff for custom behaviors, but I'm still trying
 to come up
 with a nifty use for the "after" event.
 
 Regards,
 
 Scott Rossi
 Creative Director
 Tactile Media, UX/UI Design
 
 
 
 
 On 3/18/14 7:44 PM, "Scott Rossi" <scott at tactilemedia.com>
 wrote:
 
 >How are you determining that "on" isn't working? 
 Is it possible that "on"
 >is executing immediately after "before"?
 >
 >Placing the following in a behavior script works fine
 here:
 >
 >before mouseUp
 >   answer "A"
 >end mouseUp
 >
 >on mouseUp
 >   answer "B"
 >end mouseUp
 >
 >
 >If you need some kind of alternate behavior to take
 place after "before"
 >that isn't "on", you might consider "after".  I
 know, it's a lot of
 >prepositions ...
 >
 >Regards,
 >
 >Scott Rossi
 >Creative Director
 >Tactile Media, UX/UI Design
 >
 >
 >
 >
 >On 3/18/14 4:33 PM, "Devin Asay" <devin_asay at byu.edu>
 wrote:
 >
 >>All,
 >>
 >>If a button has a behavior attached to it, and the
 behavior script has a
 >>'before mouseUp' handler, can the behavior script
 also have a 'on
 >>mouseUp' handler?
 >>
 >>I could swear the answer was yes; I thought I had
 done that before, but
 >>now when I try it, it doesn't work. (In LC 6.5.x.
 and 6.6.0RC2). Instead
 >>I have to put the 'in mouseUp' in the button's
 script.
 >>
 >>Of course I might be completely missing the point of
 'before' and 'after'
 >>handlers. Wouldn't be the first time.
 >>
 >>Regards,
 >>
 >>Devin
 >>
 >>
 >>Devin Asay
 >>Office of Digital Humanities
 >>Brigham Young University
 >>
 >>_______________________________________________
 >>use-livecode mailing list
 >>use-livecode at lists.runrev.com
 >>Please visit this url to subscribe, unsubscribe and
 manage your
 >>subscription preferences:
 >>http://lists.runrev.com/mailman/listinfo/use-livecode
 >>
 >
 >
 >
 >_______________________________________________
 >use-livecode mailing list
 >use-livecode at lists.runrev.com
 >Please visit this url to subscribe, unsubscribe and
 manage your
 >subscription preferences:
 >http://lists.runrev.com/mailman/listinfo/use-livecode
 >
 
 
 
 _______________________________________________
 use-livecode mailing list
 use-livecode at lists.runrev.com
 Please visit this url to subscribe, unsubscribe and manage
 your subscription preferences:
 http://lists.runrev.com/mailman/listinfo/use-livecode
 




More information about the use-livecode mailing list