DekGenius.com
[ Team LiB ] Previous Section Next Section

Chapter 8. Handlers

A handler is a subroutine within a script. A handler is defined using a block of code that starts with the keyword on, with syntax of this sort:

on handlerName(  )
        -- commands within the handler
end handlerName

A synonym for on is to.

When typing a handler definition, don't bother to type the name of the handler a second time in the end line. Just type end for that line; the compiler will fill in the name of the handler.


A handler definition contains the code to be executed when the handler runs, but the mere presence of the definition does not itself cause such execution. A handler's code is run when an executed line of code calls the handler, using a corresponding syntax:

handlerName(  )

The parentheses may not actually appear in the definition or the call; these are just vague syntax templates to get the discussion started. I'll explain the syntax of handler definitions and calls later in this chapter.

A handler is an important form of flow control, and leads to better-behaved, better-organized, more reusable, and more legible code. With a handler, the same code can be reused in different places in a script. Even if a handler is going to be called only once in the course of a script, it's a useful device because it names a block of code, and this name can be made informative as to the block's purpose.

Also, a handler can be called from elsewhere, so that only a specific part of a script or script object is executed. We saw this earlier in demonstrating folder actions, under Section 2.5. The folder action script used as an example there consisted of a handler called adding folder items to:

on adding folder items to ff after receiving L
        -- ...
end adding folder items to

That script might have other handlers as well, but when files are added to the folder to which the script is attached, it is the adding folder items to handler that will be called. A handler thus serves as an entry point to execute part of a script. This is also how scriptability of an applet is implemented. We'll talk more about that in Chapter 24.

    [ Team LiB ] Previous Section Next Section