State/fr

From Second Life Wiki
< State
Revision as of 12:35, 11 December 2007 by Samia Bechir (talk | contribs) (en cours de traduction par Samia)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

En LSL, la plupart des scripts attendent sans rien faire jusqu'à ce qu'ils reçoivent une information ou qu'ils détectent un changement dans leur environnement. A tout moment, le script est dans un état (state), et réagira a des événements (events) ou des informations en fonction de ce que le programmeur aura déterminé. Par ailleurs, un script peut contenir deux états différents, ou plus, et réagir différemment aux événements ou aux informations, selon l'état dans lequel il est placé à ce moment.

L'état principal est l'état par défaut (default). Quand un script est compilé, réinitialisé ou chargé, c'est l'état dans lequel il ira par défaut. Apres la définition de l'état par défaut, d'autres états peuvent être définis, de façon à ce que le script réagisse différemment aux événements

The correct title of this article is state/fr. The initial letter is shown capitalized due to technical restrictions.

default { events }

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.

|- |

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:

  1. Trigger state_exit in the current state if it exists and clear the event queue.
  2. Change state to target, any listens are unregistered.
  3. 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.

Caveats

  • On state change:
    • All listens are released.
    • The event queue is cleared
  • The default state must be defined before all others.
  • States cannot have user functions or variables inside their immediate scope, only event definitions may be inside a states scope.

Examples

default
{
    touch_start(integer a)
    {
        state hello;
    }
}

state hello
{
    state_entry()
    {
        llOwnerSay("Hello");
        state default;
    }
    state_exit()
    {
        llOwnerSay("Goodbye");
    }
}

See Also

Keywords

•  jump
•  return

Events

•  state_entry
•  state_exit