Comunidad de diseño web y desarrollo en internet online

CS3 AS2 condicionales multiples

Citar            
MensajeEscrito el 07 Feb 2012 01:21 am
Tengo 2 campos de introducción de texto que se suman entre sí (num1_txt y num2_txt) y se muestra el resultado en un texto dinámico (total_txt), todo bien hasta aquí. Ahora necesito que en otro campo dinámico aparezca un mensaje (message_txt) dependiendo del resultado. He tratado con if's, else if's, switch pero no logro hacerlo funcionar. Aquí mi código:

Código ActionScript :

function calculate()
{
    var _num1 = num1_txt.text != "" ? (Number(num1_txt.text)) : (0);
   var _num2 = num2_txt.text != "" ? (Number(num2_txt.text)) : (0);
   var _total = total_txt.text != "" ? (Number(total_txt.text)) : (0);
   var _myMessage = message_txt.text != "" ? (Number(message_txt.text)) : (0);
   
   total_txt.text = _num1 + _num2 != 0 ? (String(_num1 + _num2)) : ("");
   
//if--->
   /*if (_total<10.5) {
      message_txt.text="low";
   }
   else if (_total<=10.5) {
      message_txt.text="normal";
   }
   else if (_total>=20.5) {
      message_txt.text="high";
   }
   else if (_total>=30.5) {
      message_txt.text="extra!";
   }
   else message_txt.text="start";*/

//switch--->
   switch(_total)
      {
      case _total<10.5: message_txt.text="low";
           break;
      case _total<=10.5: message_txt.text="normal";
           break;
      case _total>=20.5: message_txt.text="high";
           break;
      case _total>=30.5: message_txt.text="extra!";
           break;
      default: message_txt.text="start";
            break;
      }
}
   
num1_txt.onChanged = function ()
{
    calculate();
};
num2_txt.onChanged = function ()
{
   calculate();
}


Agradecería mucho un poco de ayuda

Por fastrix

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Feb 2012 12:28 pm
Asegurate que _total sea Number

var _total:Number = total_txt.text != "" ? (Number(total_txt.text)) : 0;
trace("_total es "+_total);

Mira que el trace no saque NaN (Not a Number)
Luego revisa las condiciones del case, las dos primeras son iguales, entre 10 y 20 no caes en ninguna, luego caes siempre en la tercera (nunca en la cuarta) En los condicionales debes definir rangos, ej

Código ActionScript :

case (_total<=20.5 && _total>=10.5):
      message_txt.text="normal";
      break;


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jun 2012 07:04 am
No habia visto esta respuesta pero muchas gracias Jorge. Lo solucioné usando if's con && para las restricciones y como los campos de num_* solo admitían numéricos, tomé el valor de total_txt solo como .text

Código ActionScript :

if (total_txt.text>0 && total_txt.text<=18.5) {
   message_txt.text = "bajo";
}else if (total_txt.text>18.5 && total_txt.text<25) {
   message_txt.text = "medio";
}else if (total_txt.text>=25 && total_txt.text<30) {
   message_txt.text = "alto";
}else if (total_txt.text>=30) {
   message_txt.text = "extra!";
}else {
   message_txt.text = "sin datos";
}

Una pregunta ¿eres el mismo Jorge Solis de los tutoriales del monito en el carrito? Si es así, muchas gracias!!! están excelentes y me han ayudado mucho!!!

Por fastrix

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Jun 2012 08:23 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Jun 2012 09:26 am
si exacto, ese Anastacio :P

Por fastrix

5 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.