next up previous
Next: Availability; Running Status Up: Multimedia and Hypermedia Information Previous: MHEG Programming Principles

Interaction within a Scene

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:

1.
After a period of of idleness, an asynchronous event occurs. The event can be a user input event, a timer event, a stream event, or some other type of event.
2.
Possibly, a link that reacts on the event is found. This link is then fired. If no such link is found, the process starts again at 1.
3.
The result of a link being fired is the execution of an action object, which is a sequence of elementary actions. These can change the state of other objects, create or destroy other objects, or cause events to occur.
4.
As a result of the actions being performed, synchronous events may occur. These are dealt with immediately, i.e., before processing any other asynchronous events queued.

When all events have been processed, the process starts again at 1.


next up previous
Next: Availability; Running Status Up: Multimedia and Hypermedia Information Previous: MHEG Programming Principles
Dave Marshall
10/4/2001