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] Problème tableau multidimension


Sujet :

Flash

  1. #1
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut [FLASH 8] Problème tableau multidimension
    salut,
    J'ai une chaine que je charge à partir d'un fichier externe et qui se présente comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    &data=box462_1-Neuroptera Dobsonflies#box462_2-Ants Paraponera#box462_3-Wasps Velvet ants
    je voudrais arriver à faire un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    array[0][0] = box462_1
    array[0][1] = Neuroptera Dobsonflies
    array[1][0] = box462_2
    array[1][1] = Ants Paraponera
    ...
    j'essaie de faire un tableau multidimension mais ça ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var allData:Array = externalData.data.split("#");
    for (var i:Number=0 ; i<allData.length ; i++){
    	this.dataArray.push(new Array(allData[i].split("-")));
    }
    mon tableau est vide et me renvoie undefined !!!

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Je suppose que tu as déclaré au préalable dataArray ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var dataArray:Array = new Array();
    var allData:Array = externalData.data.split("#");
    for (var i:Number=0 ; i<allData.length ; i++){
    	dataArray.push(allData[i].split("-"));
    }
    trace(dataArray[0][0]);

    Ps: Indique la version de Flash que tu utilises dans ton titre. Merci
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    En fait pour être plus complet, ma fonction se trouve dans un classe dont voici une partie ci-dessous.
    la déclaration est faite au début de la classe.
    Est-ce correcte?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    class makestrip {	
    	public var dataArray:Array = new Array();
     
    	public function makestrip(){
    		this.loadData();
    	}
     
    	public function loadData(){
     
    		var externalData:LoadVars = new LoadVars();
    		externalData.load("functions/provides_swf_data.php?theme=2&lg=english","0","POST");
    		externalData.onLoad = function(success:Boolean){
    			if(success){
    				var allData:Array = externalData.data.split("#");
    				for (var i:Number=0 ; i<allData.length ; i++){
    					this.dataArray.push(new Array(allData[i].split("-")));
    				}
    				trace (this.dataArray); // juste pour tester la variable
    			}
    			else { trace("could not load the data !") };
    		}
    		this.createStrip();
    	}
    ....
    }

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Essaie en instanciant ton tableau dans le constructeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public var dataArray:Array;
     
    public function makestrip(){
    	dataArray = new Array();
    	this.loadData();
    }
    Si tu l'instancie en dehors de ton contructeur, flash le considère comme statique. C'est peut-etre la cause du soucis.

    Ps: Indique la version de Flash que tu utilises, stp. Merci
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  5. #5
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    j'utilise flash 8.0 pro

    j'ai essayé d'instancier dans le constructeur.
    j'ai également essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.dataArray[i] = allData[i].split("-");
    mais toujours pareil mon tableau reste undefined.

    (** juste une question en passant, J'ai vu que tu marquais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataArray = new Array();
    le "this." est-il optionel, obligatoire ou à éviter ?**)

    je ferme la parenthèse et continue d'essayer de comprendre pourquoi je n'arrive pas à remplir mon tableau...

  6. #6
    Expert éminent

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

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Je vois que tu as remis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.dataArray.push(new Array(allData[i].split("-")));
    j'avais mis si tu ne l'as pas remarqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataArray.push(allData[i].split("-"));
    Sinon le this. est optionnel, enfin je ne vois pas de cas, où il le serait pas. (Mais je me trompeeut-être )
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  7. #7
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Pour résumer voici mon code actuellement, mais toujours le même résultat.
    Je ne comprends pas très bien le fonctionnement des tableaux sous flash...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    class makestrip {	
    	public var dataArray:Array;
     
    	public function makestrip(word:String){
    		dataArray = new Array()
    		this.loadData();
    	}
     
    	public function loadData(){
    		var externalData:LoadVars = new LoadVars();
    		externalData.load("functions/provides_swf_data.php?theme=2&lg=english","0","POST");
    		externalData.onLoad = function(success:Boolean){
    			if(success){
    				var allData:Array = externalData.data.split("#");
    				for (var i:Number=0 ; i<allData.length ; i++){
    					dataArray.push(allData[i].split("-"));
    				}
    				trace (dataArray);
    			}
    			else { trace("could not load the data !") };
    		}
    		this.createStrip();
    	}
    ...
    }

  8. #8
    Expert éminent

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

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Je vois pas

    Déjà es-tu sûr que ton tableau est vide ? Je suppose mais on ne sait jamais
    Je vois un Teste plutôt un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trace(dataArray.length)
    ou
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  9. #9
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    dans tous les cas j'ai undefined...

Discussions similaires

  1. tableau multidimension de chaine de char
    Par michpc dans le forum Flash
    Réponses: 1
    Dernier message: 03/12/2006, 00h30
  2. [Tableaux] Tableau multidimension dans mysql
    Par wkd dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2006, 16h33
  3. [Tableaux] Recherche dans un tableau multidimension
    Par licorne dans le forum Langage
    Réponses: 2
    Dernier message: 11/10/2006, 15h46
  4. [Tableaux] créer un tableau multidimension
    Par zimotep dans le forum Langage
    Réponses: 2
    Dernier message: 18/03/2006, 17h18
  5. Réponses: 1
    Dernier message: 28/02/2006, 17h58

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