Comunidad de diseño web y desarrollo en internet online

Operadores de igualdad en AS3

Citar            
MensajeEscrito el 01 Feb 2008 11:13 am
Coloqué un Input Text instanciandolo de txtLogin en el palco.

En el código defini el siguiente array

var aLogin:Array = ["pablo","enrique","sergio","ana","mathilda","francisco"];

y este evento

btnProcesar.addEventListener(MouseEvent.CLICK , procesar);

function procesar (evento:MouseEvent):void

{
if (txtLogin.text == aLogin[0] )
{
trace ( "iguales" )
}
else
{
trace ( "diferentes")
}
trace ( txtLogin.text );
}

Si escribo pablo en el campo de texto txtLogin deberia ter como retorno "iguales", pero está devolviendo "diferentes".
Colocando un trace dá para ver que la entrada es "pablo" pero por algún motivo este valor no está siendo reconocido por la igualdad.

Alguien sabe explicar el motivo y ofrecer una solución?

Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Feb 2008 11:45 am
Hola Claudio, prueba a poner:

Código :

txtLogin.text ==aLogin[0].toString();

o en su defecto, más chapuza:

Código :

txtLogin.text == aLogin[0]+"";

Por Whitefeet

42 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Feb 2008 02:40 pm
Claudio el problema q encontre es que, es case sensitive, o sea no es lo mismo "Pablo" que "pablo", yo lo probe y con "pablo" funciona perfecto tu codigo, en cambio con Pablo me hace un trace de diferente.
O tenes que poner en el if(){} que acepte los dos casos o tenes que poenr un funcion que modifique ka primer letra de la pos del array y la cambie a mayuscula

Eso queda en segun la cantidad de nombres se registren

Slds

Por Creattive

120 de clabLevel

1 tutorial

Genero:Masculino  

Adobe AIR/Flex developer

firefox
Citar            
MensajeEscrito el 01 Feb 2008 02:53 pm
Los elemento del array son strings, de todas formas probé convertirlos com el método toString pero continua retornando "diferente".

Con respecto al case sensitive, no es el problema en este caso porque escribiendo pablo ( con minúsculas ) continúa retornando "diferentes".

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Feb 2008 03:12 pm
El código es correcto, yo creé una película nueva solo con ese código el botón y el input, y al colocar "pablo" en el input me saltó "iguales"...
Revisa tu película algo estas haciendo mal, pero no es ese código.

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 04 Feb 2008 01:35 am
Y si traceás "txtLogin.text.length"? Quizá tengas mal un espacio o algo por el estilo.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 07 Feb 2008 11:36 am
Miren lo que pasó, hice un nuevo ejercício totalmente nuevo, como Zguillez sugirió y realmente salió "iguales" accidentalmente me olvidé de colocar um borde y tube que salir adivinando con el cursor donde estaba el campo para escribir. Decidí entonces traer con ctrol+c - ctrol+v el campo con el que estaba haciendo el ejercício real y cuando hice el test salió "dsiferentes" siguiendo el consejo de Hernan mandé tracear el length y para mi sorpresa me encontré que con pablo este era 6. Lo obvio era que el problema estaba en el TextField, dando una mirada en él percibí que estaba definido como Multiline.
Dejo a continuación el código completo de este ejercício que sirve para verificar el login y seña de un usuário y mis agradecimientos por todas las respuestas.

// TextField txtLogin;
// TextField txtSenha;
// TextField txtResultado;
// Button btnProcessar;

//Declaraciones e inicializaciones
var aLogin:Array = ["pablo","hernan","sergio","ana","mathilda","francisco"];
var aSenha:Array = ["poli","nanreh","gui","ana","math","chico"];


// Ovidores de evento

btnProcesar.addEventListener(MouseEvent.CLICK , procesar);

//Funciones de evento

function procesar (evento:MouseEvent):void

{
var bEntrar:Boolean = false;
for( var i:int = 0; i <= aLogin.length-1; i++ )
{
if ( txtLogin.text == aLogin[i] && txtSenha.text == aSenha[i] )
{
bEntrar = true;
}
}
if ( bEntrar == true )
{
txtResultado.text = "Bienvenido";
}
else
{
txtResultado.text = "Seña o login no coinciden, proceda nuevamente";
}
}

/// Impoortante: definir los campso com Single Line

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 07 Feb 2008 05:31 pm
puedes importar la libreria mx.utils.StringUtil y usar el método estático trim() para quitar los espacios en blanco a los lados de la cadena, así evitas ese for que pusiste en tu código ;)

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 08 Feb 2008 01:23 am
Dejame ver si entendí, utilizando el método estático trim() eliminaría los espacios en blanco en ambos lados del string. Ahora te pregunto dos cosas:

a) El trim lo aplico de esta forma trim(txtLogin.text) ?
b) No entendí la relación del trim con el for. Coloqué el for para que recorra todos los valores de login y seña para buscar una correspondencia entre los valores digitados y los elementos de las arrays. Dónde entra el trim aqui?

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Feb 2008 03:57 pm
oohh sh*t!, perdón, me quedé con la idea de que recorrias letra por letra cada cadena, por que HernanRivas te dijo algo de la longitud de las cadenas Sorry! :P, aun así, le puedes poner StringUtil.trim(txtLogin.text) y StringUtil.trim(txtSenha.text) para eliminar los espacios

:P

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox

 

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