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

ActionScript 3 Discussion :

package & namespace


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut package & namespace
    Bonjour!

    Je m'initie à l'Action Script 3.0 pour le boulot et je suis confronté a un problème qui me semble très bête mais dont je ne trouve pas de solution claire. (je précise que je viens du monde C++ mais que j'ai lu la doc officielle d'adobe sans succès -- je suis sous eclipse/flex_builder plugin)

    La base du problème c'est que je veux trois packages avec des classes qui ont le même nom et je veux qu'elles interagissent entre elles dans une autre classe.
    Pour simplifier, j'ai comme classe (nom canonique) :

    machin.bidule.a.Truc;
    machin.bidule.b.Truc;
    machin.bidule.c.Truc;
    machin.bidule.Truc;

    Je veux utiliser les 3 premiers dans machin.bidule.Truc.
    Donc:

    1. Si j'ai bien compris, on ne peut pas utiliser de nom canonique partiel/relatif? Par exemple si je suis dans du code dans le package machin.bidule, je ne peux pas utiliser le nom c.Truc, correct? (note: ça me met une erreur donc je suis parti du principe que c'est effectivement interdit)

    2. Comment je résouds ce problème de conflits de nom dans la pratique? La façon la plus "sale" serait de changer le nom de mes classes. J'aimerai éviter cette solution si possible. Sinon je ne comprends pas comment vous faites pour résoudre ce problème dans vos applications...

    J'ai essayé d'utiliser un namespace mais ça ne semble pas l'utilisation adequate (et de toutes façons je n'arrive pas a faire marcher même l'exemple le plus simple : lorsque je fais use namespace mon_ns; il me dit qu'il ne le trouve pas alors que je l'ai bien déclaré auparavant dans un autre fichier du même package... quelque chose m'echape? )

    Voilà, je suis sur que je n'ai pas compris quelque chose d'essentiel mais la lecture des divers docs sur le net ne réponds pas a mon problème.

    Merci de votre attention.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut namespace package class
    slt

    dans ce que tu nous donne les packages aussi ont le meme nom et ca , ca ne marche pas je viens de faire un essais avec des classe du meme nom et ca marche

    package myClass classe Test methode essais

    package myTest1 classe Test methode essais

    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
     
    package myClass
    {
     
    	public class Test
    	{
     
    		import myTest1.Test
     
    		public function Test()
    		{
    		}
     
    		public function essais():String
    		{
    			var t : myTest1.Test;
    			t = new myTest1.Test();
     
    			return t.essais();
    		}
     
    	}
    }
    autre package
    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
     
    package myTest1
    {
    	public class Test
    	{
    		public function Test()
    		{
    		}
     
    		public function essais():String
    		{
     
    			return "bruno";
    		}
     
    	}
    }
    tu dois dans ce cas préciser le package pour pas qu'il n'y ai de confusion et pas lever une execption.

    j'ai testé ca marche

    a+

  3. #3
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    utilise le chemin complet pour la classe que tu veux declarer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    truc = new machin.bidule.a.Truc();
    ca permet d'avoir des classes ayant le meme nom dans des packages différents

  4. #4
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    En fait j'ai résolu le probleme : j'oublias de faire l'import...


    Merci!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/11/2014, 23h03
  2. [Assembly/NameSpace] Quel est l'équivalent du package Java ?
    Par zayro dans le forum Framework .NET
    Réponses: 5
    Dernier message: 21/02/2006, 17h00
  3. Vue Packages
    Par ced dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/04/2003, 08h32
  4. Erreur récurrente (namespace)
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 3
    Dernier message: 25/02/2003, 10h27

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