Name: after

Type: control structure

Syntax: after <messageName> [<parametersList>] <statementList> end <messageName> 

Summary: Defines a <message handler>.

Introduced: 6.0

OS: mac,windows,linux,ios,android

Platforms: desktop,server,web,mobile

Example:
after mouseUp
  answer "after mouse up received"
end resizeStack

Parameters:
messageName: 
parametersList: 
statementList: 

Description:
The <after> handler is exclusive to behavior scripts and is sent to a behavior script after all messages.

For example, consider a mouseDown message moving through the message path. It gets to an object with a behavior script:

1. The engine looks at the behavior script of the target object - If a before mouseDown handler is present, it executes it.

2. The engine next looks at the object script - If an on mouseDown handler is present, it executes it.

3. The engine now looks at the behavior script - If an <after> mouseDown handler is present, it executes it.

4. The engine finally looks at the object script - If a pass mouseDown or no mouseDown handler is present, it moves on to the parent object.

An <after> handler allows developers to produce behavior scripts which can handle messages sent to a control without having any effect on the message path, unlike front and back scripts.

References: end (keyword), private (keyword), dispatch (command), result (function), commandNames (function), paramCount (function), on (control_st), before (control_st), exit (control_st), message handler (glossary)
