Comunidad de diseño web y desarrollo en internet online

Ayudenme con indexOf

Citar            
MensajeEscrito el 13 May 2009 02:46 pm
Hola amigos, recien me inicio en ActionScript 3 y ya tengo un problema que no puedo resolver :| , espero que ustedes me puedan ayudar.
tengo 2 campos de texto llamados textIn y mainText, el caso es que debo escribir un nombre en textIn y al presionar Enter me debe devolver un mensaje en mainText, el codigo lo puse en el primer fotograma y es este:

Código :

var miSaludo:Saludo= new Saludo();
mainText.text=miSaludo.DecirHola("");
textIn.addEventListener(KeyboardEvent.KEY_UP,keyPressed);
function keyPressed(event:KeyboardEvent):void {
   if (event.keyCode==Keyboard.ENTER) {
      mainText.text=miSaludo.DecirHola(textIn.text);   
   }   
}

hasta aqui todo bien, el problema es cuando llama a la funcion miSaludo, que no me muestra el mensaje que quiero, este paquete esta en un archivo .as llamado saludo:

Código :

package {
   public class Saludo {
      public static var nombresValidos:Array=["Juan","Pepe","Rosa"];

      public function DecirHola(nombreUsuario:String=""):String {
         var saludar:String;
         if (nombreUsuario=="") {
            saludar="Hola, por favor escriba su nombre y luego presione la tecla Enter";
         } else if (nombresValidos.indexOf(nombreUsuario)>-1){
            saludar="Hola "+nombreUsuario+".";
         } else {
            saludar="Lo siento, "+ nombreUsuario +"su nombre no esta en la lista.";
         }
         return saludar;
      }   
   }
}

Por mas que escribo los nombres correctos del Array, me muestra el mensaje diciendo que el nombre no esta en la lista, mis sospechas caen sobre esta linea:

} else if (nombresValidos.indexOf(nombreUsuario)>-1){

Alguien me podria explicar que estoy haciendo mal en mi codigo?? :oops: :oops:

Por kriptonitex

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 May 2009 04:09 pm
Hie unas pruebas con tu codigo, me puse en el escenario un campo de texto y un boton y al dar clik al boton hacia la llamada sin problemas asi que "} else if (nombresValidos.indexOf(nombreUsuario)>-1){" esta linea no tiene problemas,asegurate de mandar los nombres correctos osea "Juan" y no "juan" porque deben ser exactamente iguales pon un trace al principio de la funcion para ver que esta recibiendo de parametros ;)

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 04:16 pm
Hola Angel Roberto, hice todo lo que se me ocurrió por la cabeza y aun no me funciona, probé con mayúsculas, minúsculas, con comillas y sin comillas y aun así la función siempre me devuelve false, en mi programa llamo al evento cuando presiono la tecla Enter, por lo que me dices tu lo hiciste con un botón, pero no creo que eso afecte al código de la función. Alguna otra idea ? ? :cry:

Por kriptonitex

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 May 2009 05:41 pm
Dejame probar con un enter para que te sientas seguro,y para yo estar seguro en tu funcion pon un trace :)

Código ActionScript :

 public function DecirHola(nombreUsuario:String=""):String {
         var saludar:String;
     //////////
    trace(nombreUsuario);
    //////////

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 05:42 pm
Dejame hacer la prueba y te cuento.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 05:51 pm
Hice la prueba con el enter puse el campo de texto "textIn" y tmb "mainText" hice un copy/paste de tu codigo y funciono sin ningun problema, lo unico que se me ocurre es que tu funcion DecirHola recibe malos parametros prueba con el trace para ver si es exactamente lo mismo que pones en el texto y sino ps no se me ocurre mucho si quieres pasame tu fla y el codigo para verlo.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 08:01 pm
Bueno aca esta el link donde subi los archivos, espero que me puedan ayudar :(
http://rapidshare.de/files/47147515/ejercicios.rar.html

Por kriptonitex

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 May 2009 08:24 pm
Revisando

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2009 10:36 pm
Listo!! :) Estuve checando y efectivamente puse un trace y lo que pasa es que tu texto agarra caracteres mas por el numero de lineas a tu inputText quitale la propiedad "multiline" y dejale singleline y veras como funciona.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2009 12:18 am
Pues si, Angel Roberto, recién acabo de cambiar la propiedad a ese text y me funcionó de maravillas :oops: , y yo que pensé que mi computadora me estaba jugando una broma. :lol: :lol: :lol:
Gracias por tomarte el tiempo en atender mi pregunta.

Por kriptonitex

17 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 May 2009 04:40 pm
De nada para eso estamos :)

Por Angel Roberto

Claber

248 de clabLevel



 

firefox

 

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