El control de las estructuras como if y case que vamos a ver en éste capítulo de Macromedia Director
nos permite modificar el flujo de un programa.
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.
Hasta ahora, el flujo de un programa empezaba en la parte superior del mismo y avanzaba linealmente
hasta la inferior. Por medio de estructuras de control podemos modificar este flujo de
ejecución.
Estructuras if.
Por medio de estas estructuras podemos modificar el flujo de ejecución basándonos en
una serie de condiciones. Las diferentes formas que puede presentar son las siguientes:
If condicion then
sentencias
end if
If condicion then
sentencias
else
sentencias
end if
If condicion then
sentencias
else if condicion then
sentencias
end if
Declaraciones case.
Al igual que las sentencias if .. else, nos permite tomar decisiones lógicas mientras
ejecutamos una serie de condiciones. La sintaxis de este tipo de declaración es la que se
muestra a continuación:
case (expression) of
valor_expresion1:
sentencias1
valor_expresion2:
sentencias2
............
valor_expresionn:
sentenciasn
end case
case (expression) of
valor_expresion1:
sentencias1
valor_expresion2:
sentencias2
............
valor_expresionn:
sentenciasn
otherwise
sentencias
end case
Vamos a ver un ejemplo: Supongamos que queremos mover la imagen que aparece en la
figura siguiente mediante la pulsación de las teclas siguientes: J (izquierda), K (derecha),
U (arriba) y N (abajo).

Imagen estática del balón
Para ello utilizamos el evento KeyDown que se dispara cada vez que pulsamos una tecla.
La solución utilizando estructuras if podría ser la siguiente:
if the key = "J" then
set h = the locH of sprite 1
set the locH of sprite 1 to H -10´
updatestage
else if the key = "K" then
set h = the locH of sprite 1
set the locH of sprite 1 to H +10
updatestage
else if the key = "U" then
set V = the locV of sprite 1
set the locV of sprite 1 to V -10
updatestage
else if the key = "N" then
set V = the locV of sprite 1
set the locV of sprite 1 to V +10
updatestage
end if
La solución utilizando estructuras case podría ser la siguiente:
case the key of
| "J": | set h = the locH of sprite 1
set the locH of sprite 1 to H -10
updatestage |
| "K": | set h = the locH of sprite 1
set the locH of sprite 1 to H +10
updatestage |
| "U": | set V = the locV of sprite 1
set the locV of sprite 1 to V -10
updatestage |
| "N": | set V = the locV of sprite 1
set the locV of sprite 1 to V +10
updatestage |
| otherwise: | put “No has pulsado una tecla correcta) into mensaje
updatestage
end case |
Se muestra un comentario revisado
Comentario de jose castillo:
trato de ejcutar el codigo presentado con el balon, me manda un mensaje de error respecto a la definicion de la variable J, como puedo hacer para corregir este error, agradeceria me respondieran esta inquietud...
Desarrollo Multimedia:
No debes tener definida la variable J. Prueba esto:
Global J