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 :

Ajouter plusieurs fois le même bouton


Sujet :

ActionScript 3

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2016
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Ajouter plusieurs fois le même bouton
    Bonjour!

    Je voudrais créer un bouton en deux clic.Lorsque j'appuye dessus il change de couleur du vert au rouge.Mais le probleme c'est que je voudrais le mettre 20 fois sur le même layer.Et quand je clic les uns apres les autres il changeant de couleurs?Du genre mon bouton est vert.Je clique dessus il devient rouge et quand je reclique dessus il redevient vert en deux frames.Le probleme c'est de le mettre plusieurs fois sur le même layer rapidement .

    Merci de bien vouloir me répondre.

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Il suffit de prendre un boolean et de le faire passer de vrai à faux et vice et versa à chaque MOUSE_DOWN en changeant le skin de ton bouton.
    Pour mettre plusieurs instances, il te faut faire une classe bouton....

    par exemple vite fait :

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    package
    {
    	import flash.display.Sprite;
    	import flash.display.Shape;
    	import flash.events.Event;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.geom.Matrix;
    	import flash.events.MouseEvent;
     
    	public class Bouton extends Sprite
    	{
    		private var skin1:Shape = new Shape();
    		private var skin2:Shape = new Shape();
    		private var largeur:Number;
    		private var hauteur:Number;
    		private var mat:Matrix = new Matrix();
    		private var police:TextFormat = new TextFormat();
    		private var title:TextField = new TextField();
    		private var _caption:String = "Button";
    		//private var permute:Boolean;
     
    		public function Bouton(w:Number, h:Number)
    		{
    			super();
    			largeur = w;
    			hauteur = h;
    			buttonMode = true;
    			mat.createGradientBox(w, h, Math.PI / 2, 0, 0);
    			with (skin1.graphics)
    			{
    				lineStyle(1, 0x707070);
    				beginGradientFill("linear", [0xaaffaa, 0x55ff55, 0x22ff22, 0x00ff00], [1, 1, 1, 1], [0, 127, 128, 255], mat);
    				drawRoundRect(0, 0, largeur, hauteur, 7, 7);
    			}
     
    			with (skin2.graphics)
    			{
    				lineStyle(1, 0x707070);
    				beginGradientFill("linear", [0xffaaaa, 0xff5555, 0xff2222, 0xff0000], [1, 1, 1, 1], [0, 127, 128, 255], mat);
    				drawRoundRect(0, 0, largeur, hauteur, 7, 7);
    			}
     
    			skin2.visible = false;
     
    			with (police)
    			{
    				font = "arial";
    				size = 14;
    				align = "center";
    				color = 0;
    			}
    			with (title)
    			{
    				defaultTextFormat = police;
    				text = caption;
    				width = textWidth + 10;
    				height = textHeight + 5;
    				x = (w - width) / 2;
    				y = (h - height) / 2;
    				selectable = false;
    			}
     
    			addChild(skin1);
    			addChild(skin2);
    			addChild(title);
     
    	                mouseChildren = false;
     
    			addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
     
    		}
     
    		private function onMouseDown(e:Event):void
    		{
                     // inutile de rajouter un boolean puisque visible est un boolean- En une ligne, c'est réglé (excuse) :
                             with (skin1 && skin2) visible = !visible;
                             // si tu avais voulu changer la couleur du canvas du bouton en faisant un clear() sans les shape , ça devenait nécessaire.
    			/*permute =!permute;
    			if (permute)
    			{
    				skin1.visible = false;
    				skin2.visible = true;
    			}
    			else
    			{
    				skin1.visible = true;
    				skin2.visible = false;	
    			}*/
    		}
     
    		public function get caption():String
    		{
    			return _caption;
    		}
     
    		public function set caption(value:String):void
    		{
    			_caption = value;
    			title.text = _caption;
    			title.width = title.textWidth + 10;
    			title.height = title.textHeight + 5;
    			title.x = (largeur - title.width) / 2;
    		}
     
    	}
     
    }
    mise en situation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for (var i:uint = 0; i <= 13; i++)
    {
      but[i] = new Bouton(150, 40);
      but[i].caption = " bouton n° "+String(i+1);
      but[i].x = 100;
      but[i].y = 41 * i+10;
      addChild(but[i]);
     }
    après sur le MouseEvent.CLICK, tu rajoutes tes actions ou tu ajoutes un événement (PRESS par exemple) qui pointe dans le mouseDown avec dispatchEvent(new Event(PRESS)) ....mais tu as le click, ce n'est pas la peine de se compliquer la vie.

    Remarque: le résultat serait beaucoup plus esthétique, si tu changeais aussi le skin sur le survol de tes boutons --->ROLL_OVER - ROLL_OUT
    SimpleButton permet de gérer tout ça...
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [AC-2003] Exécuter plusieurs fois une même requête ajout avec le même paramètre.
    Par paulojbt9 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/07/2011, 10h34
  2. [VBA-W] Executer plusieurs fois la même procédure
    Par delamarque dans le forum VBA Word
    Réponses: 3
    Dernier message: 05/12/2005, 13h39
  3. [JFrame] réafficher plusieurs fois un même panel à l'écran
    Par Monkeyget dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 01/04/2005, 14h29
  4. SELECT plusieurs fois les mêmes champs
    Par aergil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 22/02/2005, 12h10
  5. [VB.NET] Appliquer plusieurs fois la même fonction...
    Par MiJack dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/09/2004, 10h52

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