Difference between revisions of "State/fr"
Samia Bechir (talk | contribs) (en cours de traduction par Samia) |
Samia Bechir (talk | contribs) |
||
Line 8: | Line 8: | ||
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. | 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 | 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 | ||
{{#vardefine:name| | {{#vardefine:name|état | ||
}}{{#vardefine:p_jump_state_desc| | }}{{#vardefine:p_jump_state_desc|nom de l'état actif | ||
}}{{#vardefine:p_label_state_desc| | }}{{#vardefine:p_label_state_desc|nom de l'état | ||
}}{{#vardefine:p_events_desc| | }}{{#vardefine:p_events_desc|un ou plusieurs événements ({{LSLGC|Events|events}}) | ||
}}{{#vardefine:header_title| | }}{{#vardefine:header_title|événement { {{LSL Param|events}} } default | ||
}}{{#vardefine:header_text|{{{!}} | }}{{#vardefine:header_text|{{{!}} | ||
{{LSL DefineRow| | {{LSL DefineRow|événement|événements|{{#var:p_events_desc}}}} | ||
{{!}}} | {{!}}} | ||
Définit l'état par défaut. | |||
}}{{#vardefine:constants_nb| | }}{{#vardefine:constants_nb| | ||
<div id="box"> | <div id="box"> | ||
<h2>state {{LSL Param|label_state| | <h2>state {{LSL Param|label_state|cible}} { {{LSL Param|events}} }</h2> | ||
<div style="padding: 0.5em"> | <div style="padding: 0.5em"> | ||
{{{!}} | {{{!}} | ||
{{LSL DefineRow| | {{LSL DefineRow|nom|cible|{{#var:p_label_state_desc}}}} | ||
{{LSL DefineRow| | {{LSL DefineRow|événement|événements|{{#var:p_events_desc}}}} | ||
{{!}}} | {{!}}} | ||
''' | Définition de l'état '''cible''' (target). | ||
</div> | </div> | ||
</div> | </div> | ||
Line 31: | Line 31: | ||
{{!}} | {{!}} | ||
<div id="box"> | <div id="box"> | ||
<h2>state {{LSL Param|jump_state| | <h2>state {{LSL Param|jump_state|cible}};</h2> | ||
<div style="padding: 0.5em"> | <div style="padding: 0.5em"> | ||
{{{!}} | {{{!}} | ||
{{LSL DefineRow| | {{LSL DefineRow|nom|cible|{{#var:p_jump_state_desc}}}} | ||
{{!}}}<br/> | {{!}}}<br/> | ||
Quand un "état cible" est rencontré au cours de l'exécution, et que l'état "actuel" et l'état "cible" sont différents : | |||
# | #Actionne [[state_exit]] dans l'état actuel s'il existe, et efface la chaîne d'événements. | ||
#Change | #Change l'état pour ''cible'', tous les [[listen]]s sont arrêtés. | ||
# | #Actionne [[state_entry]] dans l'état ''cible'' s'il existe. | ||
Si l'état ''cible'' est le même que l'état ''en cours'' state, il n'y a pas de changement d'état, ni aucune conséquence. | |||
</div> | </div> | ||
</div> | </div> | ||
Line 57: | Line 57: | ||
state_entry() | state_entry() | ||
{ | { | ||
llOwnerSay(" | llOwnerSay("Coucou"); | ||
state default; | state default; | ||
} | } | ||
state_exit() | state_exit() | ||
{ | { | ||
llOwnerSay(" | llOwnerSay("Au revoir"); | ||
} | } | ||
} | } | ||
</pre> | </pre> | ||
}}{{#vardefine:notes| | }}{{#vardefine:notes| | ||
}}{{#vardefine:caveats|* | }}{{#vardefine:caveats|*Lors du changement d'état: | ||
** | **tous les [[listen]]s sont arrêtés. | ||
** | **la chaine d'événements (events) est effacée | ||
* | *L'état ''default'' doit être défini avant tous les autres. | ||
* | *Les états ne peuvent pas contenir directement de fonctions ou de variables, il ne doit y avoir que des définitions d'événements dans le contenu de l'état. | ||
}}{{#vardefine:helpers| | }}{{#vardefine:helpers| | ||
}}{{#vardefine:also_header|<h3>Keywords</h3> | }}{{#vardefine:also_header|<h3>Keywords</h3> |
Revision as of 11:56, 11 December 2007
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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
événement { events } default
événement { events } default• événement | événements | – | un ou plusieurs événements (events) |
Définit l'état par défaut.
state cible { events }
• nom | cible | – | nom de l'état | |
• événement | événements | – | un ou plusieurs événements (events) |
Définition de l'état cible (target).
|- |
state cible;
• nom | cible | – | nom de l'état actif |
Quand un "état cible" est rencontré au cours de l'exécution, et que l'état "actuel" et l'état "cible" sont différents :
- Actionne state_exit dans l'état actuel s'il existe, et efface la chaîne d'événements.
- Change l'état pour cible, tous les listens sont arrêtés.
- Actionne state_entry dans l'état cible s'il existe.
Si l'état cible est le même que l'état en cours state, il n'y a pas de changement d'état, ni aucune conséquence.
Caveats
- Lors du changement d'état:
- tous les listens sont arrêtés.
- la chaine d'événements (events) est effacée
- L'état default doit être défini avant tous les autres.
- Les états ne peuvent pas contenir directement de fonctions ou de variables, il ne doit y avoir que des définitions d'événements dans le contenu de l'état.
Examples
default { touch_start(integer a) { state hello; } } state hello { state_entry() { llOwnerSay("Coucou"); state default; } state_exit() { llOwnerSay("Au revoir"); } }
See Also