Difference between revisions of "State/fr"

From Second Life Wiki
Jump to navigation Jump to search
(en cours de traduction par Samia)
 
m
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Multi-lang}}
{{Multi-lang}}
{{LSL Header}}
{{LSL Header/fr}}
<div style="float:right">__TOC__</div>
<div style="float:right">__TOC__</div>
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.
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é.
À tout moment, le script est dans un état ('''state''') donné et réagira à des évènements ('''events''') ou à des données en entrée 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.
Par ailleurs, un script peut contenir deux états différents ou plus et réagir différemment aux évènements ou aux données en entrée, selon l'état dans lequel il se trouve à 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.
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
Après 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|state
{{#vardefine:name|état
}}{{#vardefine:p_jump_state_desc|name of a state to run
}}{{#vardefine:p_jump_state_desc|nom de l'état actif
}}{{#vardefine:p_label_state_desc|state name
}}{{#vardefine:p_label_state_desc|nom de l'état
}}{{#vardefine:p_events_desc|one or more {{LSLGC|Events|events}}
}}{{#vardefine:p_events_desc|un ou plusieurs {{LSLGC|Events/fr|évènements}}
}}{{#vardefine:header_title|default { {{LSL Param|events}} }
}}{{#vardefine:header_title|default { {{LSL Param|évènements}} }
}}{{#vardefine:header_text|{{{!}}
}}{{#vardefine:header_text|{{{!}}
{{LSL DefineRow|event|events|{{#var:p_events_desc}}}}
{{LSL DefineRow|évènements|évènements|{{#var:p_events_desc}}}}
{{!}}}
{{!}}}
The default state definition.
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|target}} { {{LSL Param|events}} }</h2>
<h2>state {{LSL Param|label_state|cible}} { {{LSL Param|évènements}} }</h2>
<div style="padding: 0.5em">
<div style="padding: 0.5em">
{{{!}}
{{{!}}
{{LSL DefineRow|label|target|{{#var:p_label_state_desc}}}}
{{LSL DefineRow|nom|cible|{{#var:p_label_state_desc}}}}
{{LSL DefineRow|event|events|{{#var:p_events_desc}}}}
{{LSL DefineRow|évènements|évènements|{{#var:p_events_desc}}}}
{{!}}}
{{!}}}
'''target''' state definition.
Définition de l'état '''cible'''.
</div>
</div>
</div>
</div>
{{!}}-
{{!}}
<div id="box">
<div id="box">
<h2>state {{LSL Param|jump_state|target}};</h2>
<h2>state {{LSL Param|jump_state|cible}};</h2>
<div style="padding: 0.5em">
<div style="padding: 0.5em">
{{{!}}
{{{!}}
{{LSL DefineRow|label|target|{{#var:p_jump_state_desc}}}}
{{LSL DefineRow|nom|cible|{{#var:p_jump_state_desc}}}}
{{!}}}<br/>
{{!}}}<br/>
When a ''state target;'' is encountered at runtime, if the ''current'' state and the ''target'' state are different:
Quand un "état cible" est rencontré au cours de l'exécution et que l'état "actuel" et l'état "cible" sont différents :
#Trigger [[state_exit]] in the current state if it exists and clear the event queue.
#Déclenche [[state_exit/fr|state_exit]] dans l'état actuel s'il existe et vide la file d'attente d'événements.
#Change state to ''target'', any [[listen]]s are unregistered.
#Change l'état en "cible", tous les [[listen/fr|listen]]s sont arrêtés.
#Trigger [[state_entry]] in the ''target'' state if it exists.
#Déclenche [[state_entry/fr|state_entry]] dans l'état "cible" s'il existe.
If ''target'' state is the same as the ''current'' state, no state change occurs nor do any of the side effects.
Si l'état "cible" est le même que l'état "en cours", il n'y a pas de changement d'état ni aucune autre conséquence.
</div>
</div>
</div>
</div>
Line 49: Line 47:
     touch_start(integer a)
     touch_start(integer a)
     {
     {
         state hello;
         state bonjour;
     }
     }
}
}


state hello
state bonjour
{
{
     state_entry()
     state_entry()
     {
     {
         llOwnerSay("Hello");
         llOwnerSay("Coucou");
         state default;
         state default;
     }
     }
     state_exit()
     state_exit()
     {
     {
         llOwnerSay("Goodbye");
         llOwnerSay("Au revoir");
     }
     }
}
}
</pre>
</pre>
}}{{#vardefine:notes|
}}{{#vardefine:notes|
}}{{#vardefine:caveats|*On state change:
}}{{#vardefine:caveats|*Lors du changement d'état:
**All [[listen]]s are released.
**tous les [[listen/fr|listen]]s sont arrêtés.
**The event queue is cleared
**la file d'attente d'évènements (events) est vidée
*The ''default'' state must be defined before all others.
*L'état ''default'' doit être défini avant tous les autres.
*States cannot have user functions or variables inside their immediate scope, only event definitions may be inside a states scope.
*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>mots clef</h3>
{{{!}}
{{{!}}
{{LSL DefineRow||[[jump]]|}}
{{LSL DefineRow||[[jump/fr|jump]]|}}
{{LSL DefineRow||[[return]]|}}
{{LSL DefineRow||[[return/fr|return]]|}}
{{!}}}
{{!}}}
}}{{#vardefine:also_footer|
}}{{#vardefine:also_footer|
}}{{#vardefine:also_functions|
}}{{#vardefine:also_functions|
}}{{#vardefine:also_events|
}}{{#vardefine:also_events|
{{LSL DefineRow||[[state_entry]]|}}
{{LSL DefineRow||[[state_entry/fr|state_entry]]|}}
{{LSL DefineRow||[[state_exit]]|}}
{{LSL DefineRow||[[state_exit/fr|state_exit]]|}}
}}{{#vardefine:also_articles|
}}{{#vardefine:also_articles|
}}{{#vardefine:also_tests|
}}{{#vardefine:also_tests|
}}{{#vardefine:location|
}}{{#vardefine:location|
}}{{LSL Generic}}{{LSLC|Flow Control}}{{LSLC|Script}}
}}{{LSL Generic}}{{LSLC|Flow Control/fr|Contrôle d'exécution}}{{LSLC|Script/fr|Scripts}}

Latest revision as of 21:46, 2 February 2010

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. À tout moment, le script est dans un état (state) donné et réagira à des évènements (events) ou à des données en entrée 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 données en entrée, selon l'état dans lequel il se trouve à 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. Après 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.

default { évènements }

default { évènements }
• évènements évènements un ou plusieurs évènements

Définit l'état par défaut.

state cible { évènements }

• nom cible nom de l'état
• évènements évènements un ou plusieurs évènements

Définition de l'état cible.

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 :

  1. Déclenche state_exit dans l'état actuel s'il existe et vide la file d'attente d'événements.
  2. Change l'état en "cible", tous les listens sont arrêtés.
  3. Déclenche state_entry dans l'état "cible" s'il existe.

Si l'état "cible" est le même que l'état "en cours", il n'y a pas de changement d'état ni aucune autre conséquence.

Caveats

  • Lors du changement d'état:
    • tous les listens sont arrêtés.
    • la file d'attente d'évènements (events) est vidé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 bonjour;
    }
}

state bonjour
{
    state_entry()
    {
        llOwnerSay("Coucou");
        state default;
    }

    state_exit()
    {
        llOwnerSay("Au revoir");
    }
}

See Also

mots clef

•  jump
•  return

Events

•  state_entry
•  state_exit