Difference between revisions of "State"
Jump to navigation
Jump to search
m |
|||
Line 3: | Line 3: | ||
}}{{#vardefine:p_jump_state_desc|name of a state to run | }}{{#vardefine:p_jump_state_desc|name of a state to run | ||
}}{{#vardefine:p_label_state_desc|state name | }}{{#vardefine:p_label_state_desc|state name | ||
}}{{#vardefine:p_events_desc|one or more events | }}{{#vardefine:p_events_desc|one or more {{LSLGC|Events|events}} | ||
}}{{#vardefine:header_title|state {{LSL Param|jump_state|target}}; | }}{{#vardefine:header_title|state {{LSL Param|jump_state|target}}; | ||
}}{{#vardefine:header_text|{{{!}} | }}{{#vardefine:header_text|{{{!}} | ||
Line 15: | Line 15: | ||
}}{{#vardefine:constants_nb| | }}{{#vardefine:constants_nb| | ||
<div id="box"> | <div id="box"> | ||
<h2>state {{LSL Param|label_state|target}}{ {{LSL Param|events}} }</h2> | <h2>default { {{LSL Param|events}} }</h2> | ||
<div style="padding: 0.5em"> | |||
{{{!}} | |||
{{LSL DefineRow|event|events|{{#var:p_events_desc}}}} | |||
{{!}}} | |||
The default state definition. | |||
</div> | |||
</div> | |||
{{!}}- | |||
{{!}} | |||
<div id="box"> | |||
<h2>state {{LSL Param|label_state|target}} { {{LSL Param|events}} }</h2> | |||
<div style="padding: 0.5em"> | <div style="padding: 0.5em"> | ||
{{{!}} | {{{!}} | ||
Line 21: | Line 32: | ||
{{LSL DefineRow|event|events|{{#var:p_events_desc}}}} | {{LSL DefineRow|event|events|{{#var:p_events_desc}}}} | ||
{{!}}} | {{!}}} | ||
'''target''' state definition. | |||
</div> | </div> | ||
</div> | </div> |
Revision as of 21:30, 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.
Examples
default { touch_start(integer a) { state hello; } } state hello { state_entry() { llOwnerSay("Hello"); state default; } state_exit() { llOwnerSay("Goodbye"); } }
See Also