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 :

[Bouton] Convertion de calques en bouton


Sujet :

Flash

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut [Bouton] Convertion de calques en bouton
    Bonjour,

    Je suis confronté a un problème dans flash.

    J'ai une animation dont plusieurs zone cliquable sont cote-a-cote et non de forme carré ( c'est une sorte de camembert divisé en huit parts dont chacune est cliquable). J'ai converti chacune de ces parts en bouton.
    Problème: Malgré que l'affichage de mes parts soit de forme triangulaire, la zone cliquable est en réalité un carré qui va chevaucher les autre parts.

    Y'a t-il une solution pour que mon bouton n'agisse que sur l'image et non la taille qu'elle prend dans le calque?

    Merci.

  2. #2
    Membre régulier
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 80
    Points
    80
    Par défaut
    Je ne sais pas comment tu fais tes boutons, mais en les dessinant avec un Shape, la zone cliquable est tres bien definie pour ta forme voulue. Moi, c'est comme cela que je fais pour faire des boutons avec une forme vectorielle comme je veux.

    Petite demo, pour faire un bouton triangulaire avec un angle aigu (pourc=0 -> angle=0, pourc=1 -> angle 90):


    camembert.as
    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
    package
    {
     
    	import flash.display.DisplayObject;
    	import flash.display.Shape;
    	import flash.display.SimpleButton;
     
    	public class Camembert extends SimpleButton {
     
    		private var size:int = 25;
    		private var pourc:Number = 0.25;
     
    		public function Camembert(_upColor:uint,_overColor:uint,_size:int,_pourc:Number)
    		{
    			size = _size;
    			pourc = _pourc;
    			downState      = new CamembertDessin(_overColor, size, pourc);
    			overState      = new CamembertDessin(_overColor, size, pourc);
    			upState        = new CamembertDessin(_upColor, size, pourc);
    			hitTestState   = new CamembertDessin(_upColor, size, pourc);
     
    			useHandCursor  = true;
        	}
    	}
     
    }

    CamembertDessin.as
    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
     
    package
    {
     
    	import flash.display.DisplayObject;
    	import flash.display.Shape;
    	import flash.display.SimpleButton;
     
    	import flash.display.Sprite;
        import flash.display.CapsStyle;
        import flash.display.LineScaleMode;
    	import flash.display.JointStyle;
     
     
    	class CamembertDessin extends Shape {
    		private var bgColor:uint;
    		private var size:uint;
    		private var pourc:Number;
     
    		public function CamembertDessin(_bgColor:uint, _size:uint, _pourc) {
    			bgColor = _bgColor;
    			size    = _size;
    			pourc    = _pourc;
    			draw();
    		}
     
    		private function draw():void {
    			//trouve X et Y, le milieu de mon futur cercle et le distance de la diagonal du cercle
    			var PiRad:Number = pourc * 0.5;
    			var InvPiRad:Number = ((1 - pourc) * 0.5);
     
    			//Thales
    			var _x:Number = Math.cos(PiRad*Math.PI) * size;
    			var _y:Number = Math.cos(InvPiRad*Math.PI) * size;
     
     
     
     
    			graphics.beginFill(bgColor,1);
    			//trace le triangle
    			graphics.lineStyle(3, bgColor, 1, true, 
                                LineScaleMode.NONE, CapsStyle.ROUND);
    			graphics.moveTo(0,0);
                            graphics.lineTo(size,0);
    			graphics.lineTo(_x, _y);
     
    			graphics.endFill();
    		}
    	}
    }
    Dans ma classe du document

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var upColor:uint   = 0x555555;
    var overColor:uint = 0x3AADD3;
    var size:int = 150;
    Camembert Cam1 = new Camembert(upColor,overColor,size,0.3);
    addChild(Cam1);
    Si cela ne marche pas ou si tu n'as pas compris, fait moi signe.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Points : 89
    Points
    89
    Par défaut
    Super merci pour ton exemple, ca me serviras

    A plus

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

Discussions similaires

  1. Bouton qui affecte d'autres boutons
    Par pennylanesworld dans le forum Flash
    Réponses: 1
    Dernier message: 05/11/2006, 07h07
  2. duplication d'un bouton comprenant plusieurs calques
    Par methoscbl dans le forum Flash
    Réponses: 2
    Dernier message: 06/08/2006, 13h39
  3. Réponses: 2
    Dernier message: 07/06/2006, 09h29
  4. Simuler le bouton réinitialiser via un autre bouton ?
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 28/02/2006, 10h49
  5. Réponses: 3
    Dernier message: 10/02/2006, 11h36

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