Aide de Director

case

Syntaxe

-- Lingo syntax
case expression of
    expression1: Statement
    expression2: Statement(s)
    expression3, expression4: Statement
    {otherwise: Statement(s)}
end case

Description

Mot-clé ; lance une structure de branchements multiples plus facile à rédiger qu’une suite d’instructions if...then.

Lingo compare la valeur de case expression aux expressions des lignes suivantes. Cette comparaison commence au début de ces lignes et continue dans l’ordre jusqu’à ce que Lingo rencontre une expression identique à case expression.

Le cas échéant, Lingo exécute la ou les instructions correspondantes suivant les deux-points placés après l’expression identique. Si une seule instruction suit l’expression identique, l’instruction peut être placée sur la même ligne que l’expression. Les instructions multiples doivent apparaître sur des lignes en retrait immédiatement après l’expression identique.

Lorsque plusieurs correspondances possibles pourraient entraîner Lingo à exécuter les mêmes instructions, les expressions doivent être séparées par des virgules. La ligne contenant expression3 et expression4 est un exemple d’une telle situation.

Lingo suspend sa recherche de correspondance dès qu’il rencontre la première expression correspondant à celle recherchée.

Si l’instruction facultative otherwise figure à la fin de la structure case, les instructions qui suivent otherwise sont exécutées si Lingo ne rencontre aucune expression identique.

Exemple

Le gestionnaire suivant teste la touche sur laquelle l’utilisateur vient d’appuyer et y répond en conséquence.

  • Si l’utilisateur a appuyé sur A, l’animation passe à l’image Pomme.
  • Si l’utilisateur a appuyé sur B ou C, l’animation exécute la transition demandée et passe à l’image Oranges.
  • Si l’utilisateur a appuyé sur n’importe quelle autre touche, l’ordinateur émet un bip sonore.
on keyDown
    case (_key.key) of
        "a": _movie.go("Apple")
        "b", "c":
             _movie.puppetTransition(99)
             _movie.go("Oranges")
        otherwise: _sound.beep()
    end case
end keyDown

L’instruction case suivante vérifie si le curseur se trouve sur l’image-objet 1, 2 ou 3 et exécute l’élément Lingo approprié :

case _movie.rollOver() of
    1: sound(1).play(member("Horn"))
    2: sound(1).play(member("Drum"))
    3: sound(1).play(member("Bongos"))
end case