New events can be readily defined and are not required to contain a data payload. In this case their format string and data payload will be empty values. When creating new events, it is appropriate to namespace the event definitions so that the names of events do not collide. For example, the Storyboard framework reserves the name prefix of
gre. for user interface events, and the timer functions all generate events that are prefixed with
The use of events is closely coupled with the declaration and operation of actions. An action can only be invoked when an event matching the action definition is received. This results in a common design pattern where an action will perform sophisticated logic in an external script or program and then signal a completion action to run once the script work is complete.
Event >Action (script) >Work >Trigger Event >Action (completion)