Condicionales AS3. If-else

Sunday, 27. December 2009

If - Else AS3

Cuando utilizamos ActionScript 3.0, así como al usar cualquier otro lenguaje de programación, en varias ocasiones necesitamos que se ejecuten acciones únicamente si se cumplen ciertas condiciones. Esto nos permite definir en que momento queremos que las acciones se ejecuten, y además nos brindan una mayor posibilidad de interacción del usuario con la aplicación, en tanto el flujo de la misma no será igual siempre que esta se ejecute, pues dependerá de si se ha cumplido dicha condición o no.

Por lo tanto utilizar condicionales se convierte en un aspecto elemental y necesario para la construcción de casi cualquier aplicación. En esta ocasión revisaremos el condicional IF para comprobar si se cumple o no una condición. También veremos como utilizar ELSE para cuando queramos que en caso de que la condición no se cumpla, se realice una acción diferente.

Artículo sobre el condicional SWITCH…

Utilización del condicional IF

La sintaxis para crear un condicional if es muy sencilla. En una línea nueva escribimos la palabra clave if, seguido de la condición encerrada entre paréntesis. Posteriormente introducimos las acciones que queremos que realice al cumplir la condición entre llaves. Esto es de la siguiente forma:
if(condición){
//acciones que se ejecutan si se cumple la condición
}

Utilización de ELSE para cuando no se cumple la condición

En caso de que queramos que se ejecute una acción cuando no se cumpla la condición agregamos al final la palabra clave else, y de inmediato introducimos las acciones entre llaves nuevamente. Tendríamos algo así:
if(condición){
//acciones que se ejecutan si se cumple la condición
}else{
//acciones que se ejecutan cuando NO se cumple la condición
}

Utilización de ELSE IF para comprobar varias condiciones

Si necesitamos comprobar varias condiciones excluyentes utilizamos else if en vez de else, y agregamos entre paréntesis la nueva condición que queremos que se cumpla. Podemos escribir algo así:
if(condición1){
//acciones que se ejecutan si se cumple la primera condición
}else if(condición2){
//acciones que se ejecutan si se cumple la segunda condición
}else{
//acciones que se ejecutan cuando NO se cumple ninguna condición
}

Si queremos comprobar muchas condiciones, es mejor utilizar el condicional switch.

Condiciones

Para definir las condiciones que queremos comprobar si se cumplen necesitamos utilizar los operadores respectivos. Por ejemplo, para comprobar la igualdad entre 2 variables, utilizamos el signo igual 2 veces ==. Si queremos comprobar si 2 variables son diferentes, utilizamos !=. De tal forma que podemos escribir las condiciones de la siguiente forma:

  • if(var1==var2) – Igualdad
  • if(var1===var2) – Igualdad estricta
  • if(var1!=var2) – Desigualdad
  • if(var1+var2=10) – Operación
  • if(var1/var2=1) – Operación
Condiciones Simultáneas

Si queremos que se cumplan dos condiciones al mismo tiempo, podemos utilizar el operador logico AND con el símbolo &&. Si queremos que las acciones se ejecuten si se cumple una u otra condición, podemos utilizar el operador logico OR con el símbolo ||. Podríamos definir las condiciones así:

  • if(var1==0 && var2==0) – Operador AND
  • if(var1+var2==10 || var1+var2==20) – Operador OR

Con lo visto anteriormente ya estamos en capacidad de utilizar el condicional IF y sus variantes para comprobar si se cumplen o no condiciones, y ejecutar de acuerdo a ello determinadas acciones.

Cualquier comentario, sugerencia, aporte o duda, se puede dejar en el sistema de comentarios del blog.
Un Saludo.
Samuel Jiménez. EsK.

VN:F [1.9.1_1087]
Rating: 9.7/10 (7 votes cast)
Condicionales AS3. If-else, 9.7 out of 10 based on 7 ratings

4 Responses to “Condicionales AS3. If-else”



  1. sinozzuke Says:

    Holas Samuel!!:
    Que bien viene este blog! La verdad que si lo hubiera encontrado la semana pasada mejor. Pero vamos al tema.
    Tengo un problema con las variables y los arrays dentro de los if-else.
    Ejecuto un if-else que decide si es un elemento guarda su nombre en un array, y si es otro elemento guarda su nombre en otro array.
    La cosa es que no soy capaz de mantener los arrays, siempre son nuevos! Y los he definido fuera de la funcion y encima como public.

    public var consultaSECT:Array= new Array();
    public var consultaACT:Array= new Array();

    if (this.name == “btnSECT-” + this.texto_btn.labeltxt.text){
    trace(“EL BOTON ES sector”);
    consultaSECT.push(this.texto_btn.labeltxt.text);
    }else{
    trace(“EL BOTON ES actividad”);

    consultaACT.push(this.texto_btn.labeltxt.text);
    trace(“consultaACT= ” + consultaACT + consultaACT.length);
    }

    Esto está dentro de una clase. Pero no se por donde tirar… Porque no puedo usar consultaACT ni consultaSEC despues

    Un saludo!

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  2. eskombro Says:

    ¿A que te refieres con que siempre son nuevos? Si te refieres a que abres la aplicación, la utilizas y la cierras, y después quieres volver a abrirla y que las variables sigan guardando la información, esto no es posible. La información en Flash se guarda en las variables y estas son temporales; en el momento en que cierras la aplicación, ese espacio se libera y se pierden los datos. Si lo que quieres es almacenar información continuamente, debes cargarla de un lugar externo: usar bases de datos o, más fácil para lo que necesitas, guardar los datos en un archivo .txt . Es decir, puedes hacer que cada vez que se abra la aplicación lea el array de un archivo de texto, y cada que lo modifiques lo guarde en un archivo de texto.

    En todo caso si la información no la guardas de forma externa, siempre serán array nuevos, porque las aplicaciones hechas en Flash no tienen ‘memoria’ por sí solos.

    Saludos

    VN:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  3. sinozzuke Says:

    No hombre no, no soy tan básico como para pretender que una variable se guarde después de cerrar una aplicación. Cada vez que se hace el condicional IF – ELSE. Es decir, cada vez que se hace click en un botón que tengo definido, como ves yo pregunto si es SECT o ACT, y en caso de que sea uno de los dos lo quiero almacenar su nombre en un array consultaACT si es una opcion o un array consultaSECT si es otra opcion. Pero lo que ocurre en realidad es que cada vez q clicko en el botón, el trace me devuelve que hay 1 elemento en el array q es el que he pinchado. si pincho otro botón se borra ese array me devuelve que hay 1 elemento en el array. Te pongo más trozo de código si quieres para ver si me puedes echar una mano.
    Gracias por responder!! Un saludo

    VA:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)


  4. eskombro Says:

    Ya te he contactado!

    Saludos

    VN:F [1.9.1_1087]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply