On 12/08/2016 04:40 PM, Bleiler, Timothy wrote:
Thanks Mark. I probably shouldn’t have used the word “problems” anywhere in my post. I agree, there are terrific benefits with the current implementation of the behavior feature. My main concern was insuring that what I observed was intended. If everything I described is by design, then the “inconsistencies” I noted are in my conceptual model of the language (extended object message path vs concatenation of scripts). Is there a better model that accounts for how the engine implements behaviors than an unpredictable combination of the two I’ve identified? An oversimplified understanding of how the engine processes scripts can get even experienced developers into trouble. The dictionary entry on "behavior" only hints at the full power of the feature and it might be difficult to expand it without invoking an accurate model of the engine’s rule set for behaviors.
I think the best explanation of the message path is still Richard Gaskin's chart and web page. Although I have to give props to Dar Scott for his message primer as well.
I tend to think of behavior scripts (and I know there are other viewpoints on this, so ymmv) as private backscripts fitting into the message path right behind the objects that use them. And in that sense behavior scripts have the same functionality as other library scripts:
behavior handlers extend the functionality of an object or a group of similar objects
behaviors can be chained: for me this makes them more useful than substacks, since you can't have substacks of substacks, but behaviors allow me to have a library with compartmentalized functionality, i.e., a math library with a special section for imaginary or complex numbers.
behavior handlers can be overridden: a handler in the library script is in the message path unless a handler of the same name is earlier in the message path
-- Mark Wieder ahsoftw...@gmail.com _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode