Script Only Stacks and Script Locals
J. Landman Gay
jacque at hyperactivesw.com
Fri Jul 15 23:20:06 EDT 2016
On 7/15/2016 8:34 PM, Sannyasin Brahmanathaswami wrote:
> There is no such thing really as "a" backscript, singular. I was
> always under the impression that inserting into back would be like
> concatenating scripts into one giant "backscript"
Actually, they have always been independently layered scripts. The most
recently inserted backscript is "behind" other backscripts. Since
commands usually go through the card layer first, you don't often notice
the layering. But if you have the same handler name in two backscripts,
their layer can make a difference, which is why that situation should be
avoided.
Frontscripts work the same way, but in the other direction. The most
recently inserted frontscipt is "in front" of any others.
>
> But what we see now is that every script inserted into "back" is
> encapsulated, if indeed, as you say… "No… the script locals from
> "inserted script 1" are not available to handlers in "inserted script
> 2".
Right. A script-local variable's scope is limited to the script that
contains it.
>
> This is important in terms of architecture that seeks to avoid use of
> globals, but at the same time wants to try to follow "single
> instance/class " in a MVC framework as much as possible…
Aside from the three methods you mentioned (custom properties, globals,
huge array) there's another one. I often create one-line functions that
return the script local when requested:
function getSMediaItemData
return sMediaItemData
end getSMediaItemData
That gives you the limited scope of a script local but also provides
accessibility from anywhere.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list