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 :

Probléme d'importation de classe


Sujet :

Flash

  1. #1
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut Probléme d'importation de classe
    Bonjour a tous,

    Je commence flash depuis hier et déjà les premiers soucis arrivent, notamment avec les classes.
    J'ai une classe Bord
    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
     
    class Bord{
    	private var bord:Number = 0;	// Type de bord
    	private var mc:MovieClip = this.createEmptyMovieClip("Bord", this.getNextHighestDepth());
     
          function Bord(){
    	}
     
    	function Bord(color:String, larg:Number){	
    		// On dessine le clip (ici un carré de 100x100 placé aux coordonnées (10,10))
    		mc.lineStyle(1, color, 100); // style de chaque trait dessiné (epaisseur de bordure, couleur, valeur alpha de la couleur)
    		mc.beginFill(color, 50); 
    		mc.moveTo(0,0); mc.lineTo(500,0); mc.lineTo(500,larg); mc.lineTo(0,larg); mc.lineTo(0,0);	
    		mc.moveTo(500,larg+1); mc.lineTo(500+larg,larg+1); mc.lineTo(500+larg,500+larg+1); mc.lineTo(500,500+larg+1);mc.lineTo(500,larg+1);	lignemc.moveTo(0,0) 
    		mc.moveTo(0,larg+1); mc.lineTo(larg,larg+1); mc.lineTo(larg,500+larg+1); mc.lineTo(0,500+larg+1);mc.lineTo(0,larg+1);	mc.moveTo(0,0)
    		mc.moveTo(0,500); mc.lineTo(500,500); mc.lineTo(500,500+larg); mc.lineTo(0,500+larg);mc.lineTo(0,500);	mc.moveTo(0,0) 
    		mc.endFill()	
    	}
     
     
    }
    Le probléme c'est que dans mon .fla (se trouvant dans le même repertoire au même niveau), je met ceci:
    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
     
    import Bord;
    var Bords:Bord = new Bord();
    trace (Bords.bord);
     
    var mc:MovieClip = this.createEmptyMovieClip("mBouton", this.getNextHighestDepth());
     
    mc.lineStyle(1, 0xffffff, 100);
    mc.beginFill(0xffcc00, 50);
    mc.moveTo(10,10)
    mc.lineTo(10,110);
    mc.lineTo(110,110)
    mc.lineTo(110,10);
    mc.lineTo(10,10);
    mc.endFill();
    Quand je met l'import et que je créé un objet, il ne se passe rien et le clip se trouvant aprés n'est pas créé.
    Mais quand je ne créé pas l'objet bord, le clip aprés est créé
    Juste s'affiche un pitite fenetre blanche (qui ecrit les "trace" et les erreurs)sans erreur, juste rien

    Alors soit il y'a un milliard de faute (je débute ), soit je suis mauvais.
    Mais la y'a un truc qui m'echappe...

    MERCI D'AVANCE

  2. #2
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Si ton clip ne se crée pas ça signifie que l'exécution de ton programme ne va pas jusque là et donc que la création de ton objet Bord ne fonctionne pas... Lorsque que tu compiles ton programme n'y a-t-il pas d'erreur avec cette classe justement ? As-tu bien renseigné le chemin d'accès à la classe via le panneau de configuration ?
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  3. #3
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Je n'ais aucune erreur avec cette classe.

    Il est obligatoire de passer par un panneau de configuration pour spécifier les classes ????
    L'import dans le fichier ne suffit pas ???

    Je vais voir si je trouve cette option ...

  4. #4
    Membre du Club
    Profil pro
    Webmaster
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Points : 55
    Points
    55
    Par défaut
    Hello

    Si ta Classe est bien proprement enregistré dans un fichier Bord.as au même niveau que ton fla, l'instruction import est inutile, Flash va retrouvé tout seul le chemin contente toi d'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var monBords = new Bord();
    et ca devrait marcher (en tout cas c'est comme ca que ca marche chez moi :p)

    Bon courage, A+
    Gyome

  5. #5
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Voici de quoi te débloquer : http://arnolem.developpez.com/flash/classes/

    Regardes la partie concernant le chemin de classe et tout devrait fonctionner
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  6. #6
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    J'ai bien spécifié le chemin d'accés,
    maintenant aprés l'appel de l'objet , le clip se créé bien, mais l'objet Bord ne fait rien, cad rien dans le trace et aucun clip "Bord" ne s'affiche a l'écran

  7. #7
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Snifff, quand je fais trace dans la fonction initialisant l'objet


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function Bord(color:String, larg:Number){
      trace(color);
    .....
    et que dans mon .fla je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var bord = new Bord("plop",10);
    Rien ne s'affiche, alors que la "color" devrait s'afficher....


  8. #8
    Membre confirmé Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Points : 570
    Points
    570
    Par défaut
    Dans ton code je ne comprends pas pourquoi tu déclares deux fois le constructeur de ta classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function Bord(){
    }
     
    function Bord(color:String, larg:Number){	
        ...
    }
    Supprime la première qui ne sert à rien selon moi !
    "Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."

  9. #9
    Membre émérite 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
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,

    Cette instruction là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private var mc:MovieClip = this.createEmptyMovieClip("Bord", this.getNextHighestDepth());
    dans la déclaration des variables de la classe me parait douteuse.

    Je n'ai pas mon éditeur flash sous la main pour faire des tests mais c'est par là que je commencerai à chercher...
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  10. #10
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Pour les deux classes, je croyais que l'on pouvais le faire (comme en Java) mais non donc j'ai supprimer le premier.

    Ensuite j'ai mis mon flash mx en mode professionnal (j'utilise la version d'eval => dans 28 jour plus rien... lol)

    En mode professionnel, il me met les erreurs se trouvant dans le code, elle sont les suivantes:
    La premiere est comme le dit dom_dev :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    **Erreur** C:\Documents and Settings\romaricd\Bureau\flash\code\Voiture.as: Ligne 6 : La méthode nommée 'createEmptyMovieClip' n'existe pas.
         	private var mc:MovieClip = this.createEmptyMovieClip("Voiture", this.getNextHighestDepth());
    Il me dit que cette methode n'existe pas mais dans mon fla je fais pareil et ca marche, cela dit le this du .fla doit être différent de celui que j'utilise dans ma classe Bord (mais par quoi le remplacer alors...)

    La deuxieme erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    **Erreur** \Voiture.as: Ligne 19 : Incompatibilité de types.
         		mc.lineStyle(1, color, 100);
    La je ne comprends pas color="0x986598" et ca ne marche pas, existe-t-il un type "color" ou autre pour mettre une couleur en variable ?

    Enfin la derniére erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    **Erreur** Voiture.as: Ligne 54 : La méthode nommée 'HitTest' n'existe pas.
         		if (_root.Voiture, HitTest(clip)){
    Pareil que pour la premiere erreur, j'utilise cette methode dans mon fichier .fla et ca marche trés bien...


    Voila je suis un peu beaucoup perdu avec toutes ces erreurs de newbies...
    Dois-je importer des classes spéciales dans mes fichiers de classes ???

    MERCI MERCI

  11. #11
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    YOUhou

    Ca marche a peu prés... Mon code de classe est a présent celui-ci
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    class Bord{
    	private var bord:Number = 0;	// Type de bord
    	private var mc:MovieClip;
    			// On crée un clip vide dans le clip courant, et on lui affecte le prochain niveau disponible	
     
    	function Bord(color:String, larg:Number){
    		mc = _root.createEmptyMovieClip("Borde", _root.getNextHighestDepth());	
     
    		mc.lineStyle(1, 0xffcc00, 100); 
    		mc.beginFill(0xffcc00, 50); 
    		mc.moveTo(0,0); mc.lineTo(500,0); mc.lineTo(500,larg); mc.lineTo(0,larg); mc.lineTo(0,0);	
    		mc.moveTo(500,larg+1); mc.lineTo(500+larg,larg+1); mc.lineTo(500+larg,500+larg+1); mc.lineTo(500,500+larg+1);mc.lineTo(500,larg+1);	mc.moveTo(0,0)
    		mc.moveTo(0,larg+1); mc.lineTo(larg,larg+1); mc.lineTo(larg,500+larg+1); mc.lineTo(0,500+larg+1);mc.lineTo(0,larg+1);	mc.moveTo(0,0) 
    		mc.moveTo(0,500); mc.lineTo(500,500); mc.lineTo(500,500+larg); mc.lineTo(0,500+larg);mc.lineTo(0,500);	mc.moveTo(0,0) 
    		mc.endFill()	
    	}
     
     
    	function setColor(color:String) : Void {
    		var cCouleur:Color = new Color(mc);
      		cCouleur.setRGB(0xffcc00);
    	}
     
     
    	function setBor(bor:Number) : Void { bord=bor; }
    	function getBor():Number{ return bord;}
     
    	// Function permettant de savoir si il y'a un choc
    	function Choc():Number{
    		//if (_root.voitur, hitTest(_root.Borde)){
    			return 1;
    		//}else{
    			return 0;
    		//}
    	}	
     
    }

    Donc mon clip avec les bords s'affiche bien mais j'ai toujours le même probléme concernant l'attribut "color" et la fonction "HitTest" quand je l'utilise dans ma classe

    P.S : Pour ne plus avoir d'erreurs j'ai remplacé color par une couleur en dur, et j'ai mis en commentaire l'utilisation de la fonction hitTest...

Discussions similaires

  1. Problème d'import de classe Java personnelle
    Par froger4 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 18/01/2011, 19h00
  2. Problème d'import de class
    Par Remi_Simon dans le forum Langage
    Réponses: 3
    Dernier message: 07/05/2009, 16h02
  3. Problème pour importer une classe
    Par svince dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 08/12/2008, 11h25
  4. [AS3] Problème d'import de classes perso.
    Par Toph' dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 30/08/2007, 10h12
  5. Problème d'import de .class
    Par arasium dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 28/06/2006, 11h09

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