Difference between revisions of "State"
Jump to navigation
Jump to search
m |
|||
Line 12: | Line 12: | ||
#Change state to ''target'', any [[listen]]s are unregistered. | #Change state to ''target'', any [[listen]]s are unregistered. | ||
#Trigger [[state_entry]] in the ''target'' state if it exists. | #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 effects. | If ''target'' state is the same as the ''current'' state, no state change occurs nor do any of the side effects. | ||
}}{{#vardefine:constants_nb| | }}{{#vardefine:constants_nb| | ||
<div id="box"> | <div id="box"> |
Revision as of 12:21, 3 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.
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