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 :

Coordonnées d'un objet Shape passant à 0 après création


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut Coordonnées d'un objet Shape passant à 0 après création
    Bonjour,
    J'essaie de créer en un système de création/édition de graphismes en Flex, mais j'ai un problème dont je ne comprends pas la cause au niveau de l'édition.
    Voici le code de la fonction de création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    			public function CreateEllipse():void
    			{
    				var conteneur:UIComponent = new UIComponent();
    				conteneur.name = "ellipse"+ ellipseN;
    				ellipseN++;
     
    				var el:Shape = new Shape();
    				el.graphics.beginFill(rgb2hex(parseInt(EllipseR.text), parseInt(EllipseG.text), parseInt(EllipseB.text)), parseInt(EllipseA.text)/255);
    				el.graphics.drawEllipse(parseInt(EllipseL.text), parseInt(EllipseT.text), parseInt(EllipseW.text), parseInt(EllipseH.text));
    				conteneur.addChild(el);
     
    				ellipseLi.addItem(conteneur.name);
    				Display.addChild(conteneur);
    			}
    Le drawEllipse() a donc en paramètres les coordonnées d'origine du graphisme, et elles sont bien appliquées.

    Code de la fonction récupérant les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		private function SelectEllipse():void
    		{
    			var conteneur:UIComponent = Display.getChildByName(EllipseLi.selectedItem.toString()) as UIComponent;
    			var el:Shape = conteneur.getChildAt(0) as Shape;
     
    			EllipseL.text = el.x.toString();
    			EllipseT.text = el.y.toString();
    			EllipseW.text = el.width.toString();
    			EllipseH.text = el.height.toString();
    		}
    La largeur et la hauteur sont affichées correctement, en revanche le deux coordonnées sont à 0.

    J'ai essayé en ajoutant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    el.x = 100;
    el.y = 100;
    à la fonction, et ça déplace le graphisme d'autant, mais à partir de sa position initiale.

    Ma question est donc de savoir comment récupérer ces valeurs telles qu'elles étaient lors de la création du graphisme, correspondant donc aux coordonnées à partir du conteneur et non du graphisme lui-même comme ça semble être le cas actuellement ?

    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    quand tu fais addChild( displayElement ); si tu change pas les coordonné de displayElement en mettant explicitement : displayElement.x = N; il changera jamais et sera toujours 0.

    Ton code ne changeant pas cette valeur c'est normale que sa soit toujours 0.

    Voila ce que je te propose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //On positionne la forme
    el.x = parseInt(EllipseL.text);
    el.y = parseInt(EllipseT.text);
    //On dessine dedans.
    el.graphics.drawEllipse(0, 0, parseInt(EllipseW.text), parseInt(EllipseH.text));

    Bon code

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    el.graphics.x = parseInt(EllipseL.text);
    Me renvoie ce message d'erreur (pareil pour Y) :
    1119: Accès à la propriété x peut-être non définie, via la référence de type static flash.display:Graphics.
    Edit : finalement c'est bon, c'est juste el.x qu'il faut mettre et non el.graphics.x, merci !

  4. #4
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    hihi désolé , sa m'apprendra a faire copier / coller ^^°

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

Discussions similaires

  1. copie d'un objet shape sur une form
    Par JockdiL dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/09/2008, 19h33
  2. Recopier un lien Hypertexte d'une cellule vers un objet Shape ?
    Par nicolas_151 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/06/2008, 09h42
  3. [POO] Coordonnées d'un objet
    Par Melem dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/03/2008, 12h04
  4. Comment sauvegarder un objet shape de type msopicture dans une variable
    Par PascalCos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/07/2007, 18h35
  5. objet shape en vba sous excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/11/2005, 15h04

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