IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] Probleme de typage d'entier venant d'un flux XML


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut [FLASH 8] Probleme de typage d'entier venant d'un flux XML
    bonjour,
    voilà le topo je récupére une valeur numérique dans un fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var c_rayon:Number = eval("_root.mapTab" + g)[c_maxTab].attributes.x
    ça a l'air tordu comme ça mais ça marche, si dans le fichier XML x=15 quand j'affiche c_rayon ça donne bien 15 mais...
    si j'utilise c_rayon comme valeur numérique exemple num + c-rayon, là ça ne marche plus du tout. De même si j'utilise c_rayon en argument numérique dans une fonction ça ne marche pas non plus.
    Est ce que l'un de vous voit une piste ??

  2. #2
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Salut,


    comme tu dis c'est un peu tordu
    Peux-tu détailler tes variables g et c_maxTab ?

    Sinon pour le pb numérique, fais un cast en Number

  3. #3
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    hi,
    g est un indice qui me permet de travailler sur différentes tables, en l'occurence c'est la table "mapTab1" qui m'interesse d'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    g=1;
    eval("_root.mapTab" + g)
    mais il y a peut être un meilleure méthode c'est plutôt ancien "eval()" mais ça marche et c_maxtab l'indice max de la table.
    C'est un peu tordu parce que c'est inclu dans tout un tas de bazard mais de toute façon cette partie marche. Si je fais afficher la valeur elle existe bien, ce que je pense c'est que ce n'est pas un nombre réellement. Si j'utilise l'opérateur "+" ça déconne parce que je pense que c'est aussi l'opérateur de concaténation de chaine. Si par exemple j'utilise l'opérateur * (multiplié) là mon appli marche. Ce qui m'étonne c'est que j'ai bien déclaré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var c_rayon:Number;
    ou je suis un gros nul (fort possible) ou il y a un grave problème de typage dans action script

  4. #4
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Merci pour les explications (mais j'ai rien compris )
    Qu'est que tu entends par table ? Tableau ? Noued Xml ? Autre ?
    Un _root["mapTab"+g] ne marche pas ? quite à passer sur 2 lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var tab:Array = _root["mapTab"+g]; // Ou var tab:XMLNode = _root["mapTab"+g];
    var c_rayon:Number = Number(tab[c_maxTab].attributes.x);

    Sinon pour ton pb numérique, t'as essayé un cast ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var c_rayon:Number = Number(eval("_root.mapTab" + g)[c_maxTab].attributes.x);
    (J'avais pas indiqué comment on fait un cast )

  5. #5
    Membre Expert Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Par défaut
    hi,
    merci pour la syntaxe des tableaux je vais faire quelques test dans ce sens mais ce n'était pas "blocant".
    par contre ou en effet j'avais réussi à avancé en faisant un cast Number() mais je trouve ça merdique. Ca me parait incencé qu'un "langage" puisse être aussi peu typé ? Je suis pas un super puriste bien au contraire, en PHP si tu fais une sortie de 3 + 3petitscochons tu obtiens 6 !! mais là c'est le contraire et c'est un peu génant.
    merci quand même.

  6. #6
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Je suis pas tout à fait d'accord avec toi.
    Le cast Number devrait être obligatoire ! Ce n'est donc pas m******e
    En effet, la valeur que tu récupères de attributes.x est une chaine de caractères donc pour la mettre dans un Number, le cast Number() va de soit.
    Pourquoi cela "marche" sans ce cast ? Parce que Flash etait, jusqu'à mx2004, pas typé du tout et que par soucis de compatibilté ascendante, il le tolère.

    Je regrette juste qu'il n'y ait pas une option qui permmette de choisir entre un mode "tolérant" et un mode "strict"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004] Problème accent dans un XML
    Par cinetryx dans le forum Flash
    Réponses: 10
    Dernier message: 30/05/2007, 00h26
  2. [FLASH 8] probleme de typage d'entier
    Par dom_dev dans le forum Flash
    Réponses: 1
    Dernier message: 08/03/2006, 15h52
  3. [Flash MX] Probleme de calques
    Par yonat94 dans le forum Flash
    Réponses: 2
    Dernier message: 28/04/2004, 12h18
  4. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 12h07
  5. [Flash 5] Probleme de movieclip
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 08/10/2003, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo