2009-03-26 7 views
1

je faire une application web dans Flex en utilisant les coordonnées globalesFirefox ne sera pas convertir la chaîne à nombre flex

je reçois les coordonnées sous forme de chaînes d'un service web, alors je fais quelque chose comme ceci:

latStr:String = "28.7242100786401"; 
longStr:String = "-106.12635420984"; 

var cLat:Number = new Number(latStr); 
var cLong:Number = new Number(longStr); 

Cela fonctionne parfaitement sur IE et chrome, à partir du serveur Web et lors du débogage au niveau local, mais Firefox fonctionne lors du débogage localement et non à partir du serveur Web, sur le serveur Web cLat et cLong retour « NaN ».

vérifier par vous-même, il devrait apparaître une alerte lorsque vous cliquez sur un résultat: http://mundobuk.com/prueba/mapa/main.html?buscar=oxxo

donc j'ai essayé d'utiliser parseFloat(), mais il arrondit cLat-28 et cLong à -106 :(

J'ai ensuite essayé de séparer les décimaux entiers forment, comme de mon exemple 28 et 7242100786401 puis diviser 7242100786401/10000000000000 = 0,7242100786401

ayant 2 numéros 28 et ,7242100786401 je les additionne

28 + 0,7242100786401 = 28,7242100786401

ici est sous forme de code:

var latArr:Array = latStr.split("."); 
var longArr:Array = longStr.split("."); 


var latDivStr:String = "1"; 
for (var i:int= 0; i< latArr[1].length; i++){ 
latDivStr += "0"; 
} 

var longDivStr:String = "1"; 
for (var j:int = 0; j< longArr[1].length; j++){ 
longDivStr += "0"; 
} 
var cLat:Number = parseFloat(latArr[0]) + arseFloat(latArr[1])/parseFloat(latDivStr); 
var cLong:Number = parseFloat(longArr[0]) - parseFloat(longArr[1])/parseFloat(longDivStr); 

à nouveau, cette façon fonctionne très bien partout, mais pas dans firefox dans le web serveur> _>

quelqu'un a des idées? je deviens fou avec ce @ @ @

Répondre

0

J'ai finalement découvert pourquoi cela ne fonctionne pas, pour une raison quelconque dans firefox au lieu de lire un point (.) Il lit une virgule (,) à partir du service web (fait en vb.net)

localement il lit comme un point trop, pas en ligne, je suppose donc qu'il doit faire quelque chose avec mon serveur IIS O_o

espère que cela aide quelqu'un là-bas ...

1

Je n'ai jamais entendu parler d'une telle erreur que le temps d'exécution de Flash est supposé rendre les différents navigateurs et OS interprètent le SWF de la même manière. Je dirai que je ne crois pas que vous devriez utiliser «nouveau» devant votre numéro de casting.

latStr:String = "28.7242100786401"; 
longStr:String = "-106.12635420984"; 

var cLat:Number = new Number(latStr); 
var cLong:Number = new Number(longStr); 

Cela devrait être:

var cLat:Number = Number(latStr); //Number is right because its a Floating Point, but remove new. 
var cLong:Number = Number(longStr); //Number is right because its a Floating Point, but remove new. 

J'ai testé l'utilisation de ce qui suit et a vu pas lieu de prendre l'arrondissement.

var latStr: Chaîne = "28.7242100786401"; var longStr: String = "-106.12635420984";

trace(parseFloat(latStr)); //Outputs: "28.7242100786401"; 
trace(parseFloat(longStr)); //Outputs: "-106.12635420984"; 

trace(Number(latStr)); //Outputs: "28.7242100786401"; 
trace(Number(longStr)); //Outputs: "-106.12635420984"; 

Je ne vois pas pourquoi vous avez besoin de cette solution de contournement. J'utilise aussi firefox comme navigateur principal et votre site semble fonctionner correctement.

Cheers.

+0

Salut merci pour la réponse. cela ne fonctionne pas dans n'importe quel ordinateur, je l'ai testé, tous avec différents types de lecteur flash (9, 10, debugg et non debugg) – sergiogx

+0

Pouvez-vous s'il vous plaît expliquer ce que je cherche dans le lien vers votre page. Peut-être une capture d'écran montrant l'erreur? Je ne vois pas de tels arrondis comme vous l'avez indiqué. –

+0

en utilisant un renifleur, je vois que le suivant échoue - http://mundobuk.com/prueba/mapa/assets/ico/null Est-ce que vous voulez dire? –

1

Virgule est le séparateur pour de nombreux pays européens, c'est donc probablement la configuration régionale sur le serveur ou le client.

Questions connexes