AppleScript functions made easy
Terry Vogelaar
terry at discovery.nl
Thu Feb 7 05:06:01 EST 2002
In HyperCard I had a stack with a lot of AppleScript functions. Because RR
treads AppleScript differently, I tried to make a function which may come in
handy for others as well.
The basic idea is that you store the AS-functions in a separate file; a
normal AppleScript-file. No custom props or fields needed, so you don't have
to work with a copy of the script, but you can work with the original, which
saves time when the AppleScript function is still in development.
Then you must know the path and the name of the function in the file. You
call it with:
get AppleScriptFunction("nameOfFunction", "path:to:file", 1, 2, "three",
"four")
Mind that on Mac OS classic you need to use colons in the path (2nd param),
while on Mac OS X you must use slashes.
Then in the stack-script you can put:
function AppleScriptFunction aFun, aFile
put "set theScript to load script (alias ""e&aFile"e&")"&return& \
"tell theScript to "&aFun&"(" into ASfunc
if paramcount() > 2 then
repeat with e = 3 to paramcount()
put param(e) into f
if param(e) is a number then
put f & "," after ASfunc
else
put quote & f & quote & "," after ASfunc
end if
end repeat
end if
put ")" into last char of ASfunc
do ASfunc as applescript
end AppleScriptFunction
Now you can call any function with any number of parameters. The value that
is returned by the AppleScript-function is returned by "AppleScriptFunction"
as well.
Terry
More information about the use-livecode
mailing list