Cristalab

Manejo de condicionales múltiples en Actionscript 3

Por: Carloz.Yanez + 05.01.2008

Cuando tenemos la necesidad de tomar una decisión basada alguna condición utilizamos el condicional if, pero algunas veces debemos comprobar varios datos para saber que hacer.
Es aquí cuando entran los condicionales múltiples, es este tip veremos como utilizarlos.

Los condicionales son:

En antiguas versiones de Actionscript era posible utilizar estos operadores escribiéndolos como palabra pero en AS3 sólo es posible utilizarlos escribiendo su signo.

AND (&&)


Este operador ejecuta el código sólo si las dos condiciones son verdaderas.

Código :


if((1 == 1) && (1 < 2)) //Si uno es igual a uno y uno es menor que dos
{
   trace("True"); //True
}


OR (||)


Ejecuta el código si alguna de las condiciones es verdadera.

Código :


if((1 == 4) || (1 < 2)) //Si uno es igual a cuatro o uno es menor que dos
{
   trace("True"); //True, la condicion de la derecha es verdadera
}


NOT (!)


Ejecuta el código si la condición es contraria.

Código :


var lloviendo:Boolean = false;

if(!(lloviendo == true))
{
   trace("No está lloviendo"); //Si no se hubiera colocado el [b]![/b], no se ejecutaría el trace
}


Con estos condicionales podremos estructurar mejor nuestro código y reducir la aparición de if innecesarios.

Etiquetas actionscript_3

Comentarios | Enviar un comentario
No me ha quedado claro... qué diferencia hay entonces entre estos dos ifs:

Código :

var num1 = 5;
var num2 = 3;
if ((num1 == num2) == false) {
   trace("No son iguales"); //Trace: No son iguales
}

if (!(num1 == num2)) {
   trace("No son iguales"); //Trace: No son iguales
}


Ambos hacen lo mismo... pero tienen alguna utilidad distinta el alguna ocasión ?

Saludos miau
Por: infernalpr

infernalpr :


No me ha quedado claro... qué diferencia hay entonces entre estos dos ifs:

Código :

var num1 = 5;
var num2 = 3;
if ((num1 == num2) == false) {
trace("No son iguales"); //Trace: No son iguales
}

if (!(num1 == num2)) {
trace("No son iguales"); //Trace: No son iguales
}



Ambos hacen lo mismo... pero tienen alguna utilidad distinta el alguna ocasión ?


El operador lógico NOT (!), es utilizado mayoritariamente en valores de tipo Boolean, es decir, para checar si el valor es false en lugar de true.
Por ejemplo:

Código :


if(!(gameOver))//Si gameOver == false
{
     trace("Error: El juego aún no ha terminado o se está jugando ahora");
}


Espero te haya quedado más claro, en caso contrario puedes mandarme un MP. miau
Por: Carloz.Yanez
En cierto sentido es lo mismo en As2 y As3. De hecho yo siempre use con signos.
Podrías haber llamado el tip "Como usar condicionales múltiples en ActionScript"
Ya que con solo especificar que en As3 debes usar los signos queda todo claro.

Deberias agregar que se pueden usar muchos condicionales.
Ejemplo:

Código :

if( ( (uno==1)&&(dos!=3) ) || ( (tres!=8) || (cuatro==4) ) )
{
//función
}

En cierto sentido dije:
Si uno es igual a uno y dos no es igual a tres, o si tres no es igual a ocho o cuatro es igual a cuatro.
Se ejecute la acción. Riendo (Lo enrede un poco)
Por: JaLeRu
O.O condicionales basicos, que acaso en AS 2.0 no eran asi ?
Por: LOon_blog

LOon_blog :

O.O condicionales basicos, que acaso en AS 2.0 no eran asi ?
En realidad se puede desde ActionScript 1.0 U_U El uso de expresiones era una práctica de Flash 5. Es como usar

Código :

3<5 ? trace(true):trace(false)

output: true

tambien puedes usar:

Código :

3<5 and 5<10 ?trace(true):trace(false)

ó

Código :

3<5 && 5<10 ?trace(true):trace(false)


en ambos casos es lo mismo miau, la ventaja, es menos líneas Lengua
ahora si quieres rayarte un poco pos:

Código :

7<5 ? 7%2==0?trace("si es multiplo de 2"):trace("no es multiplo de 2")    :trace(false)

output: false
ya que 7 NO es menor que 5, sin embargo:

Código :

7>5 ? 7%2==0?trace("si es múltiplo de 2"):trace("no es múltiplo de 2")    :trace(false)

output:NO es múltiplo de 2

ahora, esta forma solo te permite tener una linea de código por condición, aun así es interesante su uso miau

la lógica es esta

Código :

3<5 ? trace(true):trace(false)

seudocodigo
si 3 < 5 entonces TRUE sino FALSE

Código :

7>5 ? 7%2==0?trace("si es multiplo de 2"):trace("no es múltiplo de 2")    :trace(false)

seudocodigo
si 7 < 5 entonces
si 7 entre 2 da como módulo 0 entonces SI es múltiplo de 2 sino NO es múltiplo de 2
sino FALSO

Aun lo puedes usar en AS1, AS2 y AS3. esto quizas es un poco offtopic, pero puede complementar algunas cosas miau yo personalmente lo uso mucho, lo veo mas simple cuando uso una linea.

suerte Guiño
Por: eldervaz
Me parece un complemento al uso de condicionales, muy bien explicado eldervaz. Bien
Por: Carloz.Yanez
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.