Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Flash y Actionscript (http://www.forosdelweb.com/f16/)
-   -   Error con funcion (http://www.forosdelweb.com/f16/error-con-funcion-584618/)

pedro_cesar 09/05/2008 08:33

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.

Hats 09/05/2008 12:29

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.

pedro_cesar 09/05/2008 12:38

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?

Hats 09/05/2008 13:06

Re: Error con funcion
 
ha! si le sumas una variable, entonces

Number(ValorRetornado)+1

en caso de que valorRetornado sea un string.

pedro_cesar 09/05/2008 13:29

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)


Hats 09/05/2008 14:17

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";
}

pedro_cesar 09/05/2008 23:59

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.


La zona horaria es GMT -6. Ahora son las 19:29.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.