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 MX2004] [ActionScript 2] Soucis avec les classes


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut [FLASH MX2004] [ActionScript 2] Soucis avec les classes
    Bonjour à tous !

    J'ai un problème, le genre de petit bug qui prend bien la tête d'un programmeur déjà bien tendu... lol

    Pour représenter la map d'un jeu, j'ai une classe cMap qui contient quatre attributs du type cCouche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import cCouche;
     
    class cMap
    {	
         var _couche1 : cCouche;
         var _couche2 : cCouche;
         var _couchePersos : cCouche;
         var _couche3 : cCouche;
     
         public function cMap(nomMap) { (...) }
    }
    Et bien rien ne fonctionnera correctement tant que je n'aurai pas défini mes quatre attributs comme static !

    Parce-que, si je définis par exemple l'une des couches comme static :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import cCouche;
     
    class cMap
    {	
         static var _couche1 : cCouche;
         var _couche2 : cCouche;
         var _couchePersos : cCouche;
         var _couche3 : cCouche;
     
         public function cMap(nomMap) { (...) }
    }
    La couche s'affichera normalement et tout marchera (pour cette couche).

    C'est la première fois que je tombe sur ce genre de problème (restons poli ). Comment ça se fait que rien ne puisse fonctionner le cas contraire ?

    Merci si vous avez des idées...

  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

    Bizarre en effet!
    Peux-tu nous montrer ta classe cCouche?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Elle est tout à fait classique lol :

    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
    import cEntite;
     
    class cCouche
    {	
         private var _tableauEntites : Array;
         private var _nbElements : Number;
         private var _profondeur : Number;
     
         public function cCouche(_profondeur:Number)
         {	
              this._profondeur = _profondeur;
              this._tableauEntites = new Array();
              this._nbElements = 0;
     
              _root.createEmptyMovieClip("couche"+_profondeur,_profondeur);
         }
     
         public function addObject(_temp:cEntite) { (...) }
    }

  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
    Citation Envoyé par Ptibibi
    Elle est tout à fait classique lol :
    Comme tu dis!

    Dans ce cas, comment tu utilises ta classe cMap.
    Est-ce que tu n'appellerais pas tes variables _couche1, ... sans les associés à un objet?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Bun je l'utilise pour le moment juste pour charger la map.

    Charger la map consiste à créér des objets cHerbe, cArbre etc... et les insérer dans le tableau d'une des couches par exemple _couche1.addObject(new cArbre(j*32,i*32));

  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
    Tu dois avoir quelquepart :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var taMap = new cMap("nom");
    Pas sûr du "nom" mais comme tu ne l'as pas typé

    Dans ce cas, essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taMap._couche1.addObject(new cArbre(j*32,i*32));

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Oui, c'est sur la seule image clé de mon animation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import cMap;
    var laMap:cMap = new cMap("carte.txt");
    var leHeros:cHeros = new cHeros(225, 225);
    Mais les appels à _coucheX.addObject sont dans le constructeur de cMap donc pas besoin. Et puis en quoi ca influerait sur ce problème de static là ? Je comprends rieeennn... lol

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 52
    Points : 38
    Points
    38
    Par défaut
    Bonjour à tous.

    J'ai trouvé la cause du problème mais je ne vois pas trop comment faire autrement...

    Mon souci, c'est que le constructeur de la classe cMap fait appel à un objet Loadvars pour charger le fichier texte comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function Map(nomMap : String)
    {
         var varLoad = new LoadVars();
         varLoad.onData = function(src)
         {
                   (...)
                   // Appel inefficace...
                   _couche1.addObject(new cEntite(j*32,i*32));
         }
    }
    Et que je ne semble pas pouvoir accèder aux attributs de ma classe à l'intérieur de cette fonction (undefined ou autres si j'essaie).

    Comment je peux m'y prendre ?

    EDIT
    Bon bun merci lol

    Solution si ca intéresse qqn un jour : Redéfinir une classe héritant de LoadVars et y mettre comme attribut la classe concernée (moi étant Map) pour accèder aux méthodes et attributs voulus.

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

Discussions similaires

  1. [FLASH MX] Souci avec la classe "stage"
    Par helloKiwi dans le forum Flash
    Réponses: 7
    Dernier message: 26/09/2006, 17h47
  2. [FLASH MX2004] Actionscript et ScrollPane
    Par meslaey dans le forum Flash
    Réponses: 20
    Dernier message: 10/07/2005, 03h20
  3. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41
  4. [Flash MX2004] Lancer un *.exe avec fscommand
    Par pioup dans le forum Flash
    Réponses: 7
    Dernier message: 30/07/2004, 16h28
  5. [FLASH MX2004] ActionScript 2 - Le transtypage
    Par Yoops dans le forum Flash
    Réponses: 4
    Dernier message: 20/07/2004, 23h17

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