Comunidad de diseño web y desarrollo en internet online

Fallo en calculadora tomando datos de Yahoo Finance

Citar            
MensajeEscrito el 22 Oct 2010 02:35 pm
Hola, tengo un sitio web donde ofrezco retiros de dinero virtual Paypal, a petición de muchos usuarios decidí generar una calculadora, como no sé de programación pero sí algo de AS2, decidí hacerla en flash

Después de probar muchos códigos para cargar variables desde PHP encontré uno muy sencillo que usa loadVars y conseguí tomar variables de Yahoo Finance y pasarla a la calculadora, pero en ocasiones las variables no alcanzan a cargar y aparece un código NaN (ni idea por qué ocurre eso)

Ahora no tengo el archivo FLA a mano pero lo subiré esta noche, creo que es un problema en la lectura de variables del arhivo PHP, que quizás no alcanza a cargar en ocasiones... pero no sé cómo solucionarlo..

El link donde la tengo funcionando es aquí
http://www.tudineroefectivo.com/calculadoratde.html

Esta noche publicaré el .fla para ver si me podéis colaborar

Os agradecería cualquier tipo de ayuda

Gracias

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Oct 2010 03:05 pm
No pongas el fla, pon solo el code donde cargas las variables, supongo estás usando LoadVars

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 22 Oct 2010 03:09 pm
sí, estoy usando LoadVars, de todas formas subiré el fla, ya que no estoy seguro de que el pase de variables esté correcto y quiero poner el php también ya que no sé si está bien definido, pues lo tomé de un blog online

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Oct 2010 03:10 pm
Ok, yo no miro fla, pero al que le plazca bajarlo y estudiarlo le será útil.
Si pones el code, aquí estaré

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Oct 2010 12:58 am
Bueno acá dejo el código que estoy usando en el Flash de la calculadora para que resulte más sencillo dar con el problema, estoy seguro de que hay muchas cosas mejorables, pero bueno, lo que me preocupa es que no arroje los resultados, sólo lo hace en ocasiones

Para los que quieran "destripar" el archivo .fla lo pueden descargar desde el siguiente link:
http://goaruna.com/c048
(a mano derecha donde aparece el botón azul Download)

Gracias por la ayuda que podáis darme, ya que me ha llevado mucho tiempo hacer este desarrollo y la verdad es que me gustaría que funcionara bien, gracias, gracias, gracias

FOTOGRAMA 1
CARGA DE VARIABLES

Código ActionScript :

stop();
//declaramos variables
//var dineroentra:Number = 0;
var dinerosale:Number = 0;
var comisiontde:Number = 0;
//
carga = new LoadVars();
carga.load("http://www.tudineroefectivo.com/divisas.php");
carga.onLoad = function(success) {
   flashconvers1 = carga.convers1;
   flashconvers2 = carga.convers2;
};

BOTONES PREGUNTANDO SI ES O NO PRIMER RETIRO
BOTON SI
on (release) {
   if (dineroentra<=50) {
      comisiontde = 7;
   } else if (dineroentra<=70) {
      comisiontde = 9;
   } else if (dineroentra<=250) {
      comisiontde = 15;
   } else if (dineroentra<=500) {
      comisiontde = 30;
   } else if (dineroentra<=750) {
      comisiontde = 45;
   } else if (dineroentra<=999) {
      comisiontde = 60;
   }
   gotoAndStop(_currentframe+1);
}
BOTON NO
on (release) {
   if (dineroentra<=50) {
      comisiontde = 7;
   } else if (dineroentra<=70) {
      comisiontde = 9;
   } else if (dineroentra<=250) {
      comisiontde = 12;
   } else if (dineroentra<=500) {
      comisiontde = 24;
   } else if (dineroentra<=750) {
      comisiontde = 36;
   } else if (dineroentra<=999) {
      comisiontde = 48;
   }
   gotoAndStop(_currentframe+1);
}

BOTONES SELECCIONAR TIPO DE AGENCIA
BOTON MONEYGRAM
on (release) {
   if (dineroentra<=300) {
      comisionagencia = 12;
   } else if (dineroentra<=350) {
      comisionagencia = 14;
   } else if (dineroentra<=400) {
      comisionagencia = 16;
   } else if (dineroentra<=450) {
      comisionagencia = 18;
   } else if (dineroentra<=500) {
      comisionagencia = 20;
   } else if (dineroentra<=550) {
      comisionagencia = 22;
   } else if (dineroentra<=600) {
      comisionagencia = 24;
   } else if (dineroentra<=650) {
      comisionagencia = 26;
   } else if (dineroentra<=700) {
      comisionagencia = 28;
   } else if (dineroentra<=750) {
      comisionagencia = 30;
   } else if (dineroentra<=800) {
      comisionagencia = 32;
   } else if (dineroentra<=850) {
      comisionagencia = 34;
   } else if (dineroentra<=900) {
      comisionagencia = 36;
   } else if (dineroentra<=950) {
      comisionagencia = 38;
   } else if (dineroentra<=999) {
      comisionagencia = 40;
   }
   gotoAndStop(_currentframe+1);
}

BOTON WESTERN UNION
on (release) {
   if (dineroentra<=100) {
      comisionagencia = 15;
   } else if (dineroentra<=200) {
      comisionagencia = 22;
   } else if (dineroentra<=300) {
      comisionagencia = 29;
   } else if (dineroentra<=400) {
      comisionagencia = 34;
   } else if (dineroentra<=500) {
      comisionagencia = 42;
   } else if (dineroentra<=750) {
      comisionagencia = 47;
   } else if (dineroentra<=999) {
      comisionagencia = 52;
   }
   gotoAndStop(_currentframe+1);
}

ULTIMO FOTOGRAMA, OPERACIONES CON LAS VARIABLES
stop();
//convertimos las variables de PHP en numeros
var conver1:Number = parseFloat(flashconvers1);
var conver2:Number = parseFloat(flashconvers2);
//calculamos comisiones de Paypal
comisionpaypal = (dineroentra*3.9/100)+0.30;
//restamos comisión de paypal
dineroentra = dineroentra-comisionpaypal;
//restamos comision de TDE
dineroentra = dineroentra-comisiontde;
//ajustamos precio a MXN
dineroentra = dineroentra*conver1;
//restamos comision agencia
dineroentra = dineroentra-(comisionagencia*conver1);
//ajustamos comisión a USD
dineroentra = dineroentra*conver2;
dinerosale = Math.round(dineroentra);

 BOTON REINICIAR TENGO
on (release) {
   var dineroentra = "";
   var dinerosale = "";
   var conver1 = "";
   var conver2 = "";
   var comisionpaypal = "";
   var comisiontde = "";
   var comisionagencia = "";
   gotoAndStop(1);
}

Código :

CODIGO DEL ARCHIVO PHP BASADO EN ESTE LINK http://www.rafaelvega.info/calcular-cambio-de-divisas/
<?php
$url = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDMXN=X';
$handle = @fopen($url,'r');
if ($handle) {
$result = fgets($handle, 4096);
fclose($handle);
}
$zarray = explode(',',$result);

$url2 = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=MXNUSD=X';
$handle2 = @fopen($url2,'r');
if ($handle2) {
$result2 = fgets($handle2, 4096);
fclose($handle2);
}
$zarray2 = explode(',',$result2);

echo "&convers1=$zarray[1]&convers2=$zarray2[1]";
?>

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Oct 2010 11:37 pm
alguna idea de dónde puede estar el fallo?

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:22 pm
hasta que no se ejecute el onLoad del LoadVars no tienes que dejar hacer nada, puedes por ejemplo poner un fotograma cargando para asegurarte que esos datos vienen, luego avanzas adonde está la calculadora

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:28 pm
he visto algunos códigos que comentaban eso , pero no he conseguido hacerlos funcionar, como si los datos no llegaran nunca, alguna referencia o script? o sea, cómo averiguo que los datos ya han sido cargados?

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:35 pm
Pon algún trace en el onLoad

Código ActionScript :

carga.onLoad = function(success) { 
   flashconvers1 = carga.convers1; 
   flashconvers2 = carga.convers2; 
   trace("Ha llegado "+flashconvers1+"/"+flashconvers2)
   gotoAndStop("calculadora")
}; 


Igual veo que el sitio tudineroefectivo no tiene crossdomain, si tu flash estuviera en otro dominio, el sandbox inpediría cargar los datos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:44 pm
Los datos cargan desde la web de Yahoo Finance, no creo que sea un problema de permisos, ya que por lo general funciona, pero en ocasiones, muy puntuales no lo hace, no sé si es por permisos, porque hay varias llamadas a la calculadora y no se alcanzan a descargar los datos, porque la gente recorre el primer fotograma demasiado rápido, o porque debería hacer una espera para la carga de datos, por lo que he mirado loadvars permite tomar los valores booleanos true y false, por lo que creo que podría poner una animación "cargando datos" mientras esté en "false" y la carga de datos se esté produciendo, lo que me preocupa es que el error esté en otra parte o tenga otro motivo...

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:46 pm
Así es el bugfixing, se trata de hacer hipótesis y tratar de solucionarlas ... de hecho es mas lento corregir que hacer

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:50 pm
cómo sería el código para saber si los datos están en true o false? porque lo intenté y no pude hacer la comprobación... me daba error...

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:54 pm
Completo un onLoad es así:

Código ActionScript :

carga.onLoad = function(success) {  
  if(success){
     flashconvers1 = carga.convers1;  
     flashconvers2 = carga.convers2;     
     gotoAndStop("calculadora") 
   } else {
     gotoAndStop("error")
   }
}; 


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2010 02:58 pm
Gracias Jorge, probaré esta noche que llegue a casa a ver si así funciona, aunque tendré que cambiar el "error" por algún tipo de loop... hasta que las dichosas variables de Yahoo carguen...

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2010 03:00 pm
No, si viene en false es porque no pudo cargar (usualmente porque el script no existe), si no ha cargado el callback nunca se dispara, revisa la documentación sobre LoadVars

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2010 03:04 pm
Hay algún motivo por el que el archivo .php no llegue a funcionar?

Por ejemplo, 2 personas pueden entrar al mismo tiempo desde 2 computadores y usar la calculadora sin problemas?

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Oct 2010 12:10 am
Hola

Ya encontré uno de los errores, si es que no todos:
cuando cargo la calculadora desde
http://tudineroefectivo.com/calculadoratde.html NO carga las variables
pero cuando lo hago desde
http://www.tudineroefectivo.com/calculadoratde.html
sí las carga...

es muy extraño no?

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Oct 2010 12:37 am
No, está mal configurado el server (Los DNS seguramente).

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 26 Oct 2010 12:44 am
Pero es que es ahora me doy cuenta de que mi llamada a la variables es así
carga.load("http://www.tudineroefectivo.com/divisas.php");

tendría que o poner ambas (con un if?) o quizás funcione sólo divisas.php? voy a probar...

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Oct 2010 12:52 am
perfecto, funcionó con
carga.load("divisas.php");

(por supuesto ambos archivos están en la misma carpeta)

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Oct 2010 01:58 am
Muchas gracias por vuestra ayuda, creo que ya quedó resuelto y con la verificación de que los datos carguen desde Yahoo Finance (puse una animación de precarga), en caso de que no ocurra la carga de datos puse un reinicio desde el fotograma final (espero que no cause un bucle y un cuelgue del navegador)

Si alguien está interesado en que suba el nuevo .fla sólo es que me lo diga

Gracias de verdad muchach@s

Por ramonjosegn

27 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Oct 2010 03:34 am

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Oct 2010 03:44 am
ok, la verdad es que lo había puesto así porque había leído que no se podía poner sólo la ruta relativa, y que tocaba poner la ruta absoluta completa, pero ya ví que no es cierto...

gracias por vuestros aportes

Por ramonjosegn

27 de clabLevel



 

firefox

 

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