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 :

Changer couleur d'un texte au survol de la souris


Sujet :

ActionScript 3

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut Changer couleur d'un texte au survol de la souris
    Bonjour,

    Je débute tout juste en AS3 et je n'arrive pas à faire un simple changement de couleur d'un texte au survol de la souris.

    Je vous explique :
    J'ai un conteneur principal "sprite" dans lequel j'ai inclu deux autres "sprite" afin de séparé mon animation en deux partie.
    J'ai donc une partie supérieur et une partie inférieur.
    Dans la partie inférieur, j'ai un textField que j'ai englobé dans un movieClip pour faire "trembler" le texte et ce movieClip est incorporé dans le sprite inférieur. Je vous laisse voir le code...

    Et donc, j'aimerais qu'au survol du sprite inférieur, plusieurs choses se passent dont le changement de couleur de mon texte.

    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
    var Conteneur:sprite = new Sprite();
    var Sup:Sprite = new Sprite();
    var Inf:Sprite = new Sprite();
    Conteneur.addChild(Sup);
    Conteneur.addChild(Inf);
    Sup.x = 5;
    Sup.y = 5;
    Inf.x = 5;
    Inf.y = 255;
     
    var format:TextFormat = new TextFormat();
    format.font = "Calibri";
    format.size = 20;
    format.color = 0xFFFFFF;
    format.align = TextFormatAlign.CENTER;
    var texte:TextField = new TextField();
    texte.defaultTextFormat = format;
    texte.text = "TOUTES LES OFFRES FLASH";
    texte.width = 300;
     
     
    var TextTremble:MovieClip = new MovieClip();
    TextTremble.x = 0;
    TextTremble.y = 0;
    TextTremble.addChild(texte);
    Inf.addChild(TextTremble);
     
    Inf.addEventListener(MouseEvent.MOUSE_DOWN, contraste);
     
    function contraste(evt:MouseEvent):void
    {
    trace(format.color);
    format.color = 0x000080;
    trace(evt.type);
    }
    Merci d'avance pour vos lumières...

  2. #2
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function contraste(evt:MouseEvent):void
    {
        texte.textColor= 0x000080;
    }
    tout simplement

  3. #3
    Membre régulier Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Points : 91
    Points
    91
    Par défaut
    Je rajouterai que MOUSE_DOWN c'est pas l'event survol de la souris

    je pense qu'il te faut obligatoirement deux events, MOUVE_OVER pour set ta couleur de survol et autres effets puis MOUSE_OUT pour revenir à la normal.

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut
    Merci beaucoup.

    En effet SnowStyle, j'ai fait comme tu as dit.
    Et pour la couleur du texte, j'ai créé en fait un nouveau format que j'attribue à mon TextField dans ma fonction.

    Petite question à part entière:
    Cette fonction je la place dans mon public function.

    Je m'explique, j'ai ma class principal, et à l'intérieur j'ai ma public function du même nom que ma classe.
    Et donc à l'intérieur, j'ai cette fonction concernant le changement de couleur.

    Je trouve ça illogique et j'ai l'impression que la programmation orienté objet perd tout son sens.

    Comment dois-je m'y prendre pour organiser tout ça et ne pas avoir de fonction à l'intérieur de ma public function principal.

    En code, ça donne ceci :
    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
     
    package
    {
    	import flash.display.*;
    	import flash.text.TextField;
    	import flash.text.TextFormat;
    	import flash.text.TextFormatAlign;
            import .........
     
    	public class NomDeLaClass extends Sprite
    	{
    		public function NomDeLaClass ()
    		{
                        var Conteneur:sprite = new Sprite();
                        var Sup:Sprite = new Sprite();
                        var Inf:Sprite = new Sprite();
                        Conteneur.addChild(Sup);
                        Conteneur.addChild(Inf);
                        Sup.x = 5;
                        Sup.y = 5;
                        Inf.x = 5;
                        Inf.y = 255;
     
                        var format:TextFormat = new TextFormat();
                        format.font = "Calibri";
                        format.size = 20;
                        format.color = 0xFFFFFF;
                        format.align = TextFormatAlign.CENTER;
                        var formatSurvol:TextFormat = new TextFormat();
                        formatSurvol.font = "Calibri";
                        formatSurvol.size = 20;
                        formatSurvol.color = 0x000000;
                        formatSurvol.align = TextFormatAlign.CENTER;
                        var texte:TextField = new TextField();
                        texte.defaultTextFormat = format;
                        texte.text = "TOUTES LES OFFRES FLASH";
                        texte.width = 300;
     
     
                        var TextTremble:MovieClip = new MovieClip();
                        TextTremble.x = 0;
                        TextTremble.y = 0;
                        TextTremble.addChild(texte);
                        Inf.addChild(TextTremble);
     
                        Inf.addEventListener(MouseEvent.MOUSE_OVER, contraste);
                        Inf.addEventListener(MouseEvent.MOUSE_OUT, decontraste);
     
                        function contraste(evt:MouseEvent):void
                        {
                           texte.setTextFormat(formatSurvol);
                        }
     
                         function decontraste(evt:MouseEvent):void
                        {
                            texte.setTextFormat(format);
                        }
                    }
            }
     
    }
    Merci d'avance.
    Une fois ça acquis, je pourrai avancer dans mon développement.
    (j'ai l’impression que j'ai des lacunes concernant la POO)

  5. #5
    Membre régulier Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Points : 91
    Points
    91
    Par défaut
    Euh, tu peux les mettre à la suite de ton constructeur (public fonction principale), sous private function le plus souvent, ou autres type selon les besoins.

    Mais bon je débute en poo, j'ai pas encore compris la logique et le sens de ce concept encore.

  6. #6
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut
    Désolé j'ai même pas utilisé le mot "constructeur" dans ma question.

    Le problème est que si je le met en fonction (private ou public) après mon constructeur, j'ai souvent des erreurs.

    Dans le cas présent, ça me donnerait :

    Accès à la propriété non définit...

    Peut-être que je définis mal mes variables?..

  7. #7
    Membre régulier Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Points : 91
    Points
    91
    Par défaut
    Ah oui je n'avais pas fait gaf, toute les variables que tu définis dans une fonction, même le constructeur, sont temporaire, enfin tu ne peux plus y accéder une fois la fonction achevé.

    Il faut les déclarés en... global, bon j'appelle ça global par habitude mais c'est pas global le terme exact je pense

    tu les déclares dans public class NomDeLaClass extends Sprite { }

    dans ton cas tu utilises texte et format dans d'autres fonctions, donc ça donnerait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class NomDeLaClass extends Sprite
    {
    	private var format:TextFormat = new TextFormat();
    	private var formatSurvol:TextFormat = new TextFormat();
    	private var texte:TextField = new TextField();
     
    ...

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut
    Ah oui, je me doutais que c'était quelque chose de ce genre mais je n'avais pas testé.

    Je me met au travail pour refaire mon organisation.

    Merci!

  9. #9
    Membre régulier Avatar de SnowStyle
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Points : 91
    Points
    91
    Par défaut
    De rien

    J'y pense, tu peux les déclarer comme ça aussi:
    private var format:TextFormat;

    juste crée l'adresse sans valeur

    Bon courage pour ton organisation, si un jour tu comprends la logique de la poo, ça m'intéresse

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

Discussions similaires

  1. Changer la couleur d'un texte au survol d'une image
    Par asas-as dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 20/07/2014, 10h02
  2. Réponses: 3
    Dernier message: 04/01/2013, 20h30
  3. Changer la couleur d'une forme au survol de la souris
    Par chtrousselle dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/11/2012, 17h39
  4. [AC-2003] Changer la couleur d'un controle au survol de la souris
    Par ThieBEN dans le forum IHM
    Réponses: 15
    Dernier message: 31/10/2012, 21h40
  5. Afficher un texte au survol de la souris
    Par Death83 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 05/03/2006, 19h28

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