Difference between revisions of "State"
Jump to navigation
Jump to search
Line 26: | Line 26: | ||
}}{{#vardefine:examples| | }}{{#vardefine:examples| | ||
<pre> | <pre> | ||
default | |||
{ | |||
touch_start(integer a) | |||
{ | |||
state hello; | |||
} | |||
} | |||
state hello | state hello | ||
{ | { | ||
Line 36: | Line 44: | ||
{ | { | ||
llOwnerSay("Goodbye"); | llOwnerSay("Goodbye"); | ||
} | } | ||
} | } |
Revision as of 21:57, 2 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 encountered at runtime, if the old state and the new state are different states:
- 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 new state if it exists.
If target is the current state a state change does not happen nor does any of it's effects.
state target{ events }
• label | target | – | state name | |
• event | events | – | one or more events |
State definition.
Caveats
- On state change all listens are released.
Examples
default { touch_start(integer a) { state hello; } } state hello { state_entry() { llOwnerSay("Hello"); state default; } state_exit() { llOwnerSay("Goodbye"); } }
See Also