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] (AS 2.0) Probleme de classe


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 25
    Points
    25
    Par défaut [FLASH MX2004] (AS 2.0) Probleme de classe
    Je voulais faire une petite simulation de vie animale en Flash (toute simple hein!!) avec des animaux imaginaires que j'ai apelé Deweezz.
    La simulation porte surtout sur leur reproduction.
    Un male peut avoir à l'age adulte 5 enfants et une femelle 5.
    -
    Je ne l'ai testé mais elle ne fonctionne pas
    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
     
    class Deweezz{
    	var enfants:Number=0; //au départ un D-weezz n'a pas d'enfant
    	var rest:Number=3; //cette ligne ne sert qu'à définir le nb d'enfant restant 
    	//pour pas etre embeté apres mais il ne s'agit pas de la vraie valeur
    	// qui sera definie plus tard selon le type du D-weezz
    	//----------------------------------------
    	//On met en place la fonction qui va permettre de crréer les proprio d'un D-weezz
    	//son nom, son type(male ou femelle) son age(0 a la naissance) 
    	//le nombre d'enfant qu'il peut avoir selon qu'il soit un male ou une femelle
    	function newD(nomT:String,typeT:String){
    		var nom:String=nomT;
    		var type:String=typeT;
    		var age:Number=0;
    		if(type=="male"){
    			var rest:Number=5;//si c'est un male, il peut avoir 3 enfants
    		}else{
    			var rest:Number=3;//si c'est une femelle, elle peut avoir 5 enfants
    		}
    	}
    	//-------------------------------------------------
    	//On met en place la fonction qui s'associe à la reproduction d'un D-weezz
    	function reproducte(){
    		if(rest>0){	//s'il na pas epuisé son quota d'enfants
    			++enfants;//on augmente la prop correspondant a son nb d'enfants
    			--rest;//on diminue son quota d'enfants de 1
    			return true;//on retourne la valeur 'true' pour montré qu'il s'estreproduit
    		}else{
    			return false;//si son quto d'enfants était epuisé, on retourne la valeure false pour monrter qu'il n'avait pas le droit de se reproduire
    		}
    	}
    }
    Je pense utiliser cette classe comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var msg:String = "";
    var JeanPaul:Deweezz = newD("Jean-Paul","male");
    var reprok:Boolean = JeanPaul.reproducte();
    if(reprok){
           msg = JeanPaul.nom+" s'est reproduit et peut encore avoir "+JeanPaul.rest+" enfant(s)."
    }else{
           msg = JeanPaul.nom+" n'a pas le droit de se reproduire car il a déja "+JeanPaul.enfants+" ."
    }
    J'aimerais savoir ce qui cloche... :'(

  2. #2
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Points : 2 190
    Points
    2 190
    Billets dans le blog
    3
    Par défaut
    Tu écris : JeanPaul.nom

    Mais je ne vois pas de "var nom:String" dans la déclaration de la classe Deweez.

    Pour pouvoir faire un JeanPaul.nom je pense que t'es obligé d'avoir soit une variable publique ou alors avoir défini des propriétés... Moi j'utilise plutôt des propriétés d'ailleurs.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    ben le nom je l'ai mis dans la fonction newD... donc il fau aussi le definir en dehors.. merci ;-)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut
    Je suis pas un spécialiste mais je pense que ta fonction newD devrait plutôt s'appeler Deweezz dans la mesure où c'est le constructeur de ta classe.
    Essaie à mon avis ca peut être ça le pb.

  5. #5
    Membre régulier
    Homme Profil pro
    Directeur technique
    Inscrit en
    Novembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 56
    Points : 105
    Points
    105
    Par défaut
    Salut,

    Je pense que ton code devrais plutot ressembler à ca.

    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
    39
    40
    41
    42
     
    class Deweezz
    { 
    	public var enfants:Number=0;
    	public var rest:Number=3; 
    	public var nom:String = "";
    	public var type :String = "";
    	public var age:Number = 0;
     
    	/*Le constructeur de la classe appelé avec new
    	* var Jean-Paul : Deweezz = new Deweezz(...)
    	*/
    	public Deweezz(nomT:String,typeT:String)
    	{ 
    		this.nom = nomT;
    		this.type = typeT;
    		if(type=="male")
    		{ 
    			this.rest = 3;
    		}
    		else
    		{ 
    			this.rest = 5;
    		} 
    	} 
     
    	/*Si ta function renvoie une valeur, indique le
    	* C'est pas obligatoire mais c'est plus lisible*/
    	public function reproducte():Boolean
    	{ 
    		if(this.rest>0)
    		{   
    			this.enfants++;
    			this.rest--;
    			return true;
    		}
    		else
    		{ 
    			return false;
    		} 
    	} 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var msg:String = ""; 
    var JeanPaul:Deweezz = new Deweezz("Jean-Paul","male"); 
    var reprok:Boolean = JeanPaul.reproducte(); 
    if(reprok)
    { 
        msg = JeanPaul.nom+" s'est reproduit et peut encore avoir "+JeanPaul.rest+" enfant(s)."
    }	
    else
    { 
        msg = JeanPaul.nom+" n'a pas le droit de se reproduire car il a déja "+JeanPaul.enfants+" ." 
    }
    [/code]

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 MX2004] Valeurs d'objets instances de classes...
    Par amietbeach dans le forum Flash
    Réponses: 2
    Dernier message: 25/02/2006, 15h38
  3. Réponses: 7
    Dernier message: 05/10/2004, 13h44
  4. [FLASH MX2004] [PHP/FLASH] Probleme de LoadVar
    Par dedella_al dans le forum Flash
    Réponses: 8
    Dernier message: 16/07/2004, 18h56
  5. [FLASH MX2004] Architecture d'une classe
    Par matN59 dans le forum Flash
    Réponses: 6
    Dernier message: 13/05/2004, 08h11

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