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 :

AS3 Addition de couleurs dans un clip


Sujet :

Flash

  1. #1
    Candidat au Club
    AS3 Addition de couleurs dans un clip
    Bonjour,

    J'ai ce code qui fonctionne et qui me permet quand j'appuie sur la touche "flèche gauche" de:
    1 déclencher une boucle audio (par l'envoi sur la frame 2)
    2 de changer la couleur du fond (monFond)

    Ce que je voudrais à la place de simplement définir la nouvelle couleur ( ma_couleur.color = 0x34FD02; ) c'est l'addition de l'ancienne couleur avec une couleur définie.
    Par exemple la couleur de base est 0xFFFE00 et chaque fois que j'appuie la nouvelle couleur est ajoutée 0xFFFE00 + 0x34FD02 et quand j'appuie encore une fois 0xFFFE00 + 0x34FD02 + 0x34FD02 etc...

    Voici mon code (sur l'image 1):
    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
    stop();
    // Création du mask et du fond
    var monMask: monClip2 = new monClip2();
    var monFond: monClip1 = new monClip1();
    //Définition de la couleur du Mask
    var my_color: ColorTransform = monMask.transform.colorTransform;
    my_color.color = 0xFF0000;
    monMask.transform.colorTransform = my_color;
    //Définition de la couleur du fond
    var ma_couleur: ColorTransform = monFond.transform.colorTransform;
    ma_couleur.color = 0xFFFE00;
    monFond.transform.colorTransform = ma_couleur;
    //addChild(monFond);
    addChild(monMask);
    //Appui sur flêche gauche va à l'image 2 et modifie la couleur de monFond
    var flecheGauche: Boolean = false;
    stage.addEventListener(KeyboardEvent.KEY_DOWN, toucheEnfonce);
     
    function toucheEnfonce(evt: KeyboardEvent) {
        if (evt.keyCode == 37) {
            flecheGauche = true;
            var ma_couleur: ColorTransform = new ColorTransform();
            ma_couleur.color = 0x34FD02;
            monFond.transform.colorTransform = ma_couleur;
            addChild(monFond);
            addChild(monMask);
            gotoAndStop(2);
        }
    }
    //addChild(monFond);
    addChild(monMask);
    //Appui sur flêche gauche va à l'image 2 et modifie la couleur de monFond
    var flecheGauche: Boolean = false;
    stage.addEventListener(KeyboardEvent.KEY_DOWN, toucheEnfonce);
     
    function toucheEnfonce(evt: KeyboardEvent) {
        if (evt.keyCode == 37) {
            flecheGauche = true;
            var ma_couleur: ColorTransform = new ColorTransform();
            ma_couleur.color = 0x34FD02;
            monFond.transform.colorTransform = ma_couleur;
            addChild(monFond);
            addChild(monMask);
            gotoAndStop(2);
        }
    }


    Voilà si quelqu'un peu m'aider :-)

  2. #2
    Membre expérimenté
    pour additionner deux couleurs en hexa, il te faut déjà extraire les composantes rouge,verte et bleue avec une fonction qui te renvoie un objet de type record soit :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    		private function objettricolor(mycolor:uint):Object
    		{
    			var objet:Object = new Object();
    			objet.rouge = (mycolor >>> 16) & 0xFF;
    			objet.vert = (mycolor >>> 8) & 0xFF;
    			objet.bleu = mycolor & 0xFF;
     
    			return objet;	
    		}


    Aprés, à partir de deux couleurs par exemple :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
     var col1:uint = 0x0000FF;
     var Col2:uint = 0x00FF00;


    faire la somme des composantes rouge, verte et bleue des deux couleurs en exemple et on obtient ainsi la couleur additionnelle :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    manouvellecouleur = (objettricolor(col1).rouge+objettricolor(Col2).rouge) << 16 | (objettricolor(col1).vert+objettricolor(Col2).vert) << 8 | objettricolor(col1).bleu+objettricolor(Col2).bleu;


    ici manouvellecouleur donne du cyan.

###raw>template_hook.ano_emploi###