For: Unterschied zwischen den Versionen
(neu: for i Schleife) |
|||
Zeile 4: | Zeile 4: | ||
<code xml> | <code xml> | ||
<for all="" name=""> | <for all="" name=""> | ||
+ | <!-- Schleifenrumpf --> | ||
+ | </for> | ||
+ | |||
+ | <for [start="1"] end="" [step="1"] name=""> | ||
<!-- Schleifenrumpf --> | <!-- Schleifenrumpf --> | ||
</for> | </for> | ||
Zeile 12: | Zeile 16: | ||
!Attribut!! Erklärung | !Attribut!! Erklärung | ||
|- | |- | ||
− | |all||Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird <nowiki>|</nowiki> benutzt. | + | |all||Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird <nowiki>|</nowiki> benutzt. Das, was im Schleifenrumpf angegeben ist, wird für jedes Array-Element ausgeführt. |
+ | |- | ||
+ | |start||Hier wird der Startwert angegeben (standardmäßig 1) | ||
+ | |- | ||
+ | |end||Hier wird der Ende-Wert der for-Schleife angegeben (z.B. 10) | ||
+ | |- | ||
+ | |step||Hier wird die Zählererhöhung angegeben (standardmäßig 1) | ||
|- | |- | ||
|name||Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den [[Scope]] 'scene'. | |name||Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den [[Scope]] 'scene'. | ||
|} | |} | ||
− | |||
− | |||
− | |||
== Beispiele == | == Beispiele == | ||
Zeile 55: | Zeile 62: | ||
</for> | </for> | ||
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) --> | <!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) --> | ||
+ | </code> | ||
+ | |||
+ | |||
+ | === Von 1 bis 10 zählen === | ||
+ | <code xml> | ||
+ | <for start="1" end="10" name="i"> | ||
+ | <p><fetch name="i"/></p> | ||
+ | </for> | ||
</code> | </code> | ||
[[Kategorie:AOQML-Tags]] | [[Kategorie:AOQML-Tags]] |
Aktuelle Version vom 18. Februar 2017, 18:54 Uhr
Mit dem for-Tag kann man in AOQML Schleifen erstellen. Dies kann insbesondere bei Gruppenoptionen sowie zur einfacheren Handhabung komplexer Szenen hilfreich sein.
Inhaltsverzeichnis
Syntax
<for all="" name="">
<!-- Schleifenrumpf -->
</for>
<for [start="1"] end="" [step="1"] name="">
<!-- Schleifenrumpf -->
</for>
Attribut | Erklärung |
---|---|
all | Hier wird das Array angegeben, über das iteriert werden soll. Als Trenner zwischen den Array-Elementen wird | benutzt. Das, was im Schleifenrumpf angegeben ist, wird für jedes Array-Element ausgeführt. |
start | Hier wird der Startwert angegeben (standardmäßig 1) |
end | Hier wird der Ende-Wert der for-Schleife angegeben (z.B. 10) |
step | Hier wird die Zählererhöhung angegeben (standardmäßig 1) |
name | Gibt den Bezeichner der Variable an, die bei jedem Schleifendurchlauf mit dem neuen Array-Element gesetzt wird. Die Variable hat den Scope 'scene'. |
Beispiele
Mehrere Proben hintereinander durchführen
Im folgenden Beispiel werden drei Talentproben hintereinander durchgeführt.
<for all="Singen|Schleichen|Schwimmen" name="tal">
<challenge talent="${tal}">
</challenge>
</for>
Gruppenmitglieder durchgehen
Im folgenden Beispiel wird über alle Gruppenmitglieder iteriert. Im Schleifenrumpf wird jeder Held wird einzeln selektiert und seine HeldID und sein Name ausgegeben.
<for all="${sys:heroes}" name="heldid">
<select hero="${heldid}"/>
<p>HeldID: <fetch name="heldid"/>, Name: <get attribute="name"/></p>
</for>
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->
Die Variable sys:heroes hat alle Held-IDs der Gruppenmitglieder gespeichert.
Möchte man auf die bereits selektierten Gruppenmitglieder zugreifen, kann die Variable sys:selected-heroes verwendet werden.
Möchte man auf die bisher nichtselektierten Gruppenmitglieder zugreifen, kann die Variable sys:unselected-heroes verwendet werden.
<!-- alle Helden ausgeben, die gerade selektiert sind -->
<for all="${sys:selected-heroes}" name="heldid">
<select hero="${heldid}"/>
<p>HeldID: <fetch name="heldid"/>, Name: <get attribute="name"/></p>
</for>
<!-- Hinweis: jetzt ist nur noch der zuletzt ausgegebene Held selektiert (da mehrere einzelne Selects durchgeführt wurden) -->
Von 1 bis 10 zählen
<for start="1" end="10" name="i">
<p><fetch name="i"/></p>
</for>