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

Flex Discussion :

Comment faire un dégradé de couleur dans un panel?


Sujet :

Flex

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 285
    Points : 91
    Points
    91
    Par défaut Comment faire un dégradé de couleur dans un panel?
    Bonjour,

    Je voudrais mettre un degradé de couleur, en couleur de fond de ma panel.
    LA propriété "backGroundGradientColors" n'existant pas pour un panelj 'ai essayé de faire une extension de la classe mais cela ne fonctionne pas.
    Voicile code du package :
    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
     
    package  com.tiria.components
    {
     
     
    	import mx.containers.Panel;
        import mx.styles.StyleManager;
        import mx.styles.CSSStyleDeclaration;
        import flash.display.GradientType;
        import mx.controls.Alert;
     
        [Style(name="backgroundGradientColors",type="Array",format="Color",inherit="no")]
     
        public class superPanel extends Panel
        {
            private static var inited:Boolean = initStyle();
            private var bBackgroundGradientColorsChanged:Boolean = true;
            private var colors:Array = [];
     
            public function superPanel() {
                super();
            }
     
            protected override function measure():void {
                super.measure();
     
                measuredWidth = measuredMinWidth = 100;
                measuredHeight = measuredMinHeight = 100;
            }
     
            override public function styleChanged(styleProp:String):void {
                super.styleChanged(styleProp);
     
                if (styleProp == "backgroundGradientColors") 
                {
                    bBackgroundGradientColorsChanged=true; 
                    invalidateDisplayList();
                    return;
                }
            }
     
            override protected function updateDisplayList(unscaledWidth:Number,
                    unscaledHeight:Number):void {
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                trace("updateDisplayList");
     
                if (bBackgroundGradientColorsChanged) {
                    colors = getStyle("backgroundGradientColors");
     
                    graphics.beginGradientFill(GradientType.LINEAR, 
                        colors, [1.0,1.0], [0x00,0xFF]);  
                    graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
                    graphics.endFill();
                }
            }
     
            private static function initStyle():Boolean {
                trace("init");
                if(!StyleManager.getStyleDeclaration("superPanel")) {
                    var monStyle:CSSStyleDeclaration = new CSSStyleDeclaration();
                    monStyle.setStyle("backgroundGradientColors",[0x8080ff, 0xc0c0c0]);
                    StyleManager.setStyleDeclaration("superPanel",monStyle,true);
                }
     
                return true;
            }
        }
     
    }
    Voici comment je l'appelle dans mon fichier mxml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <comps:superPanel x="10" y="0" width="264" height="494" layout="absolute"  id="SuperPanelListMenu" title="Menu Existant" backgroundGradientColors="[color1,color2]" />
    Lorsque je fais ca le background de ma panel ne change pas, alors si quelqu'un peut m'aider à trouver l'erreur?
    Merci,

  2. #2
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Le dégrade de couleur sera supporté nativement dans la prochaine version de flex (SDK 4 : gumbo).


    http://blog.flexexamples.com/2009/03...in-flex-gumbo/


    Il doit être possible d'y arriver dès maintenant avec beaucoup d'action script... mais je ne sais pas
    all your base are belong to us.

  3. #3
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    je n'ai pas regardé ton code, mais en speed je peux t'orienter vers un tuto de mon blog qui traite du suejt : ici

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

Discussions similaires

  1. Comment faire un dégradé de couleur en background d'une layout
    Par maxwel56 dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 23/05/2011, 16h26
  2. [Débutant]Comment faire des tranches de nombre dans une tabl
    Par Jedecouvreaccess dans le forum Access
    Réponses: 7
    Dernier message: 05/09/2005, 08h46
  3. Comment mettre des lignes de couleur dans une TCheckListBox ?
    Par Isa31 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/03/2005, 08h40
  4. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24
  5. [C#] Comment mettre une ligne en couleur dans mon DataGrid ?
    Par vandeyy dans le forum Windows Forms
    Réponses: 7
    Dernier message: 19/07/2004, 10h03

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