Foros del Web » Creando para Internet » Flash y Actionscript »

Error con funcion

Estas en el tema de Error con funcion en el foro de Flash y Actionscript en Foros del Web. Tengo esta funcion Código: function telVerify (tel:String):Number { if (tel.length !=12) return 1; if (tel.indexOf("-") != 3 || tel.lastIndexOf("-") != 7 || (tel.indexOf ("-", tel.indexOf ...
  #1 (permalink)  
Antiguo 09/05/2008, 09:33
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 11 años, 3 meses
Puntos: 3
Error con funcion

Tengo esta funcion
Código:
function telVerify (tel:String):Number {
    
    if (tel.length !=12)
      return 1;
      
    if (tel.indexOf("-") != 3 ||
        tel.lastIndexOf("-") != 7 ||
        (tel.indexOf ("-", tel.indexOf ("-")+1) !=7))
        
        return 2;
        
    trace ("llegue al return");
    return 0;
}
y funciona de maravilla excepto por que si no se cumplen ninguno de los ifs, no hace el return 0; aunque sí hace el trace.

Traté convirtiendo la funcion a String y luego convirtiendo el resultado usando la funcion Number (); pero sucedia lo mismo.

Ah por cierto, se me olvido mencionar que si cambio el ultimo return por otro numero que no sea 0 sí funciona, el problema esta en que yo uso esos returns para manipular una pelicula que muestra el error dado.

Última edición por pedro_cesar; 09/05/2008 a las 09:59 Razón: Olvide la ultima parte
  #2 (permalink)  
Antiguo 09/05/2008, 13:29
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 13 años
Puntos: 2
Re: Error con funcion

Tal vez el problema es que restringes muchjo el tipo de dato, prueba asi:


function telVerify (tel) {

if (tel.length !=12)
return "1";

if (tel.indexOf("-") != 3 ||
tel.lastIndexOf("-") != 7 ||
(tel.indexOf ("-", tel.indexOf ("-")+1) !=7))

return "2";

trace ("llegue al return");
return "0";
}

Si estas usando los numeros de los returns para direccionar a otros frame, deberia resultar, ya que el gotoandplay funca tb strings. saludos.
  #3 (permalink)  
Antiguo 09/05/2008, 13:38
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 11 años, 3 meses
Puntos: 3
Re: Error con funcion

Eso me devuelve los valores correctamente, pero yo no uso exactamente los valores que retorna, si no, valorRetornado+1 ya que, como es obvio, no hay un frame 0.

Yo se que entonces solo tendria que hacer que retorne esos valores exactamente, lo que pasa es que yo estudio programacion y los profesores me han inculcado la costumbre de hacer el codigo bien, y que siempre que el programa finzaliza sin problemas debe retornar 0.

Al hacerlo de este modo lo que se retorna es un String entonces al hacer var+1 en vez de sumarlos lo que hace es concatenarlos.

Hay alguna forma para sumarle 1 al ASCII que contenga ese string?
  #4 (permalink)  
Antiguo 09/05/2008, 14:06
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 13 años
Puntos: 2
Re: Error con funcion

ha! si le sumas una variable, entonces

Number(ValorRetornado)+1

en caso de que valorRetornado sea un string.
  #5 (permalink)  
Antiguo 09/05/2008, 14:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 11 años, 3 meses
Puntos: 3
Re: Error con funcion

Eso ya lo intente, cuando el String es "0", Number() no devuelve nada :S.

Estoy usando este codigo (fragmento):

Código:
var tempEstd= Number(telVerify (telefono_ta.text));
trace (tempEstd)
  #6 (permalink)  
Antiguo 09/05/2008, 15:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 13 años
Puntos: 2
Re: Error con funcion

q te imprime el trace?
es "" o es undefined?

en todo caso de ser asi es cuestionde avivarse. mira

tempEstd = Number(telVerify (telefono_ta.text)); //no es necesario poner 'var'

if (tempEstd == "" || tempEstd == undefined){
tempEstd="0";
}
  #7 (permalink)  
Antiguo 10/05/2008, 00:59
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 11 años, 3 meses
Puntos: 3
Re: Error con funcion

Si ya se me habia ocurrido, lo que queria evitar era justamente tener que usar la desicion pero parece que no queda de otra, lo hare asi hasta que alguien me diga que es lo que pasa con el return 0;

P.S. trace imprime "".
P.S. gracias Hats por el seguimiento.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.