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

Langage PHP Discussion :

Faire d'un objet un membre d'une classe [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut Faire d'un objet un membre d'une classe
    Bonjour,

    je vais peut être mal m'exprimer car je suis loin de maîtriser la PoO... J'aimerais développer quelque chose à l'aide de la libraire Ming. J'espère que jusque là je suis claire.

    Le problème : Dessiner un rectangle avec Ming est fastidieux (je trouve), donc en créer plusieurs est très très très long, çà fait beaucoup de lignes...

    Solution envisagée : Définir une class Rectangle (comprenant origineX, origineY, largeur, hauteur, couleurFond...) qui instancie elle même un objet SWFShape. De manière à avoir un code plus concis et plus clair.

    Ma question : Est-ce idiot ? est-ce réalisable ? Je sors ?

    J'ai déjà commencé : Jai fait le constructeur, j'ai tenté une méthode colorier() et une méthode tracer() que j'ai vite abandonné par rapport au problème : SWFShape::colorier is not a function... . Ce qui m'a conduit à directement appeler depuis le constructeur de Rectangle, la méthode addFill() de la class SWFShape.
    Résultat : je n'ai plus d'erreur MAIS mon rectangle n'apparait pas dans l'animation !

    Que me conseillez-vous ?

  2. #2
    mon_nom_est_personne
    Invité(e)
    Par défaut
    Commencons pas le commencement, stocker un objet dans un objet n'"Est-ce idiot". C'est meme malin car si tu doit tracer 20 rectangles ca t'evite d'instancier 20x le meme objet. Apres j'avoue pas connaitre ming donc desole de pas pouvoir t'aider.

  3. #3
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Bonjour,

    Merci de t'intéresser...

    Ok tu ne connais pas Ming... je ne pense pas que ce soit très grave. En fait je voudrais savoir si je ne fais pas des choses qui défient les lois de la programmation objet

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    class Rectangle {
     
    	public $objetShape;
     
    	public $origineX;
    	public $origineY;
    	public $largeur;
    	public $hauteur;
    	public $couleurFond;
    	public $imageFond;
     
    	function __construct($origineX, $origineY, $largeur, $hauteur, $couleurFond, $imageFond) {
     
    		$this->objetShape = new SWFShape();
     
    		$this->origineX    = $origineX;
    		$this->origineY    = $origineY;
    		$this->largeur     = $largeur;
    		$this->hauteur     = $hauteur;
    		$this->couleurFond = $couleurFond;
    		$this->imageFond   = $imageFond;
     
    		/* si je place ce bout de code après $s = $rect->objetShape; et que je fais les modifs qui s'impose çà marche... */
    		// Coloriage
    		$trame = $this->objetShape->addFill($this->couleurFond[0], $this->couleurFond[1], $this->couleurFond[2]);
    		$this->objetShape->setRightFill($trame);
     
    		// Traçage
    		$this->objetShape->movePenTo($this->origineX, $this->origineY);
     
    		$val1 = $this->origineX + $this->largeur;
    		$this->objetShape->drawLineTo($val1, $this->origineY);
     
    		$val2 = $this->origineY + $this->hauteur;
    		$this->objetShape->drawLineTo($val1, $val2);
    		$this->objetShape->drawLineTo($this->origineX, $val2);
    		$this->objetShape->drawLineTo($this->origineX, $this->origineY);
    		/* fin bout de code */
    	}
    }
     
    /* Ancien code procédural, que je voudrais donc mettre sous forme objet pour les raisons expliquées
    $s = new SWFShape();
     
    $f = $s->addFill(0xff, 0xff, 0xff);
    $s->setRightFill($f);
     
    $s->movePenTo(-500, -500);
    $s->drawLineTo(500, -500);
    $s->drawLineTo(500, 500);
    $s->drawLineTo(-500, 500);
    $s->drawLineTo(-500, -500);
    */
     
    $rect = new Rectangle(-500, -500, 1000, 1000, array('0xff', '0xff', '0xff'), '');
    $s = $rect->objetShape;
     
    $p = new SWFSprite();
    $i = $p->add($s);
    $i->setDepth(1);
    $p->nextFrame();
     
    ...
    Il me semble que le membre objetShape de la class Rectangle est bien construit puisque lorsque je fais un var_dump il m'affiche bien que c'est un objet de type SWFShape... Alors pourquoi (j'imagine que c'est ce qui se passe) le "coloriage" et le "traçage" ne fonctionne pas ?

    Faudrait peut être que je vois si il y a une class debug dans Ming... çà serait pas bête... peut être que j'ai une erreur Flash... et même j'espère que j'en ai une... parce que sinon

  4. #4
    Membre averti Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Points : 402
    Points
    402
    Par défaut
    Me revoilà... j'ai un peu honte...

    C'est l'instanciation de l'objet Rectangle qui était moisie... au niveau de la couleur... j'avais marqué array('0xff', '0xff', '0xff'), alors qu'il fallait écrire array(0xff, 0xff, 0xff).


    Je --->

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/03/2014, 19h40
  2. Objet vector<Type> membre d'une classe
    Par Chewbi dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/02/2006, 17h12
  3. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 13h49
  4. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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