The MHEG application is event-driven, in the sense that all actions are called as the result of an event firing a link. Events can be divided into two main groups: synchronous events and asynchronous events. Asynchronous events are events that occur asynchronously to the processing of Links in the MHEG engine. These include timer events and user input events. An application area of MHEG-5 (such as DAVIC) must specify the permissible UserInput events within that area. Synchronous events are events that can only occur as the result of an MHEG-5 action being targeted to some objects. A typical example of a synchronous event is IsSelected, which can only occur as the result of the MHEG-5 action Select being invoked. Synchronous events are always dealt with immediately; asynchronous events are queued.
The mechanism at the heart of the MHEG engine, therefore, is the following:
When all events have been processed, the process starts again at 1.