Difference between revisions of "State"
Jump to navigation
Jump to search
Line 62: | Line 62: | ||
**All [[listen]]s are released. | **All [[listen]]s are released. | ||
**The event queue is cleared | **The event queue is cleared | ||
*The <code>default</code> must be defined before all others. | *The <code>default</code> state must be defined before all others. | ||
}}{{#vardefine:helpers| | }}{{#vardefine:helpers| | ||
}}{{#vardefine:also_header|<h3>Keywords</h3> | }}{{#vardefine:also_header|<h3>Keywords</h3> |
Revision as of 21:41, 5 March 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
- The correct title of this article is state. The initial letter is shown capitalized due to technical restrictions.
state target;
state target;• label | target | – | name of a state to run |
When a state target; is encountered at runtime, if the current state and the target state are different:
- Trigger state_exit in the current state if it exists and clear the event queue.
- Change state to target, any listens are unregistered.
- Trigger state_entry in the target state if it exists.
If target state is the same as the current state, no state change occurs nor do any of the side effects.
default { events }
• event | events | – | one or more events |
The default state definition.
|- |
state target { events }
• label | target | – | state name | |
• event | events | – | one or more events |
target state definition.
Caveats
- On state change:
- All listens are released.
- The event queue is cleared
- The
default
state must be defined before all others.
Examples
default { touch_start(integer a) { state hello; } } state hello { state_entry() { llOwnerSay("Hello"); state default; } state_exit() { llOwnerSay("Goodbye"); } }
See Also