Diminution progressive de la luminosité avec l'objet Color [Résolu]

Messages postés
12
Date d'inscription
mercredi 26 janvier 2005
Dernière intervention
19 avril 2007
- - Dernière réponse : patrickart
Messages postés
25
Date d'inscription
dimanche 6 septembre 2009
Dernière intervention
2 juillet 2010
- 24 mars 2010 à 10:45
Bonjour tout le monde,
Après avoir cherché longuement je n'ai pas trouvé de réponse à mon problème.
Je m'explique. Je souhaite diminuer la luminosité de mon image de façon progressive en AS. J'ai donc trouvé ce script qui utilise la methode setTransform de l'objet Color:
var couleur = new Color(monClip);
var assombrir = new Object();
assombrir.ra =50;
assombrir.ga =50;
assombrir.ba =50;
couleur.setTransform(assombrir);
Mais la luminosité baisse d'un coup et moi je souhaiterais la rendre progressive au clic d'un bouton.
Si quelqu'un pouvais m'aider, car j'avoue ne pas être super callée en ActionScript et encore moins en programmation orientée objet =(
Merci d'avance.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
12 mai 2008
1
3
Merci
Salut,

Effectivement, y a un bug

C'est en partie de ma faute, (en partie seulement, hein ) j'ai oublié de vérifier ton code pour le changement d'intensité lumineuse.
Ce n'est pas comme ça qu'il faut procéder. Tu ne peux modifier directement l'objet Color, tu dois passer par une fonction de transformation.

Code :
    function assombrissement(objet_couleur:Color){
        // On récupère les informations de couleur de l'objet demandé
        var transformation    :Object    = objet_couleur.getTransform();
        // On retire un point de luminosité à chaque lancement de la fonction
        transformation.ra--;
        transformation.ga--;
        transformation.ba--;
        // On réattribue le changement de couleur
        objet_couleur.setTransform(transformation);
    }

    // Variable qui contiendra la boucle.
    var interval :Number = 0;

    bouton.onRelease = function(){
       // Création de l'objet couleur :
        var couleur :Color = new Color(monClip);
        // Lancement de la boucle d'assombrissement
        interval = setInterval(assombrissement, 10, couleur);
    }
Fin code

Je t'ai mis en rouge la partie à modifier.
De plus, si tu regardes la fonction onRelease, j'ai ajouté en vert deux petits mots.
Ca ne change en rien ton code, c'est juste que c'est plus syntaxiquement correct

J'ai testé ( cette fois ) le code et ça ne devrait plus poser de problème. Je n'ai modifié que l'intensité lumineuse de l'objet "transformation" mais tu peux bien évidemment changer aussi la teinte.

En espérant que cette fois il n'ait plus de soucis.

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Darkrats
Messages postés
52
Date d'inscription
jeudi 8 décembre 2005
Dernière intervention
11 avril 2007
0
Merci
il faut que tu crées un clip qui contient ton image et sur chaque image soit tu crées des images clés avec la propriete alpha qui diminue , soit sur chque image this.._alpha=30;
puis this._alpha=20;......
Commenter la réponse de tomm123456
Messages postés
12
Date d'inscription
mercredi 26 janvier 2005
Dernière intervention
19 avril 2007
0
Merci
Oui j'ai pensé a diminuer l'opacité mais ce n'est pas le rendu que je souhaite. Je voudrais que mon image s'assombrisse petit à petit. Et c'est là où ça se corse pour moi, c'est que cette manip j'aimerais la faire en actionScript. Et apparement la solution est d'utiliser setTransform de l'objet Color. Mais je ne sais pas comment créer un assombrissement progressif....
En tout cas merci pour ta réponse rapide
Commenter la réponse de delf013
Messages postés
212
Date d'inscription
mardi 2 novembre 2004
Dernière intervention
12 mai 2008
1
0
Merci
Salut,

Comme tu l'as vu, le code pour baisser la luminosité d'une couleur se trouve dans l'objet Color. Je ne vais donc pas toucher à cette portion du code, vu que, toi, ce qui t'intéresse c'est de le faire progressivement

Voici une méthode pour le faire progressivement au clic d'un bouton
Code :
    function assombrissement(objet_couleur:Color){
       // On retire un point de luminosité à chaque lancement de la fonction

       objet_couleur.ra--;

       objet_couleur.ga--;

       objet_couleur.ba--;
    }

    // Variable qui contiendra la boucle.
    var interval :Number = 0;
   
    bouton.onRelease = function(){
       // Création de l'objet couleur :
       couleur = new Color(monClip);
       // Lancement de la boucle d'assombrissement
       interval = setInterval(assombrissemen, 10, couleur);
    }
Fin code

Si tu veux arrêter l'interval, il te suffit de faire
    clearInterval(interval);
Tu peux ajouter une condition qui bloquera l'assombrissement pour qu'il ne devienne pas totalement noir.

Tu peux aussi utiliser un onEnterFrame(), ça s'est à toi de voir ce qui te convient le mieux.

--------- Darkrats ---------
la loi est dure mais c'est la loi
 -------- Infograpix --------
Commenter la réponse de Darkrats
Messages postés
12
Date d'inscription
mercredi 26 janvier 2005
Dernière intervention
19 avril 2007
0
Merci
Salut, Darkrats et merci pour ta réponse.
J'ai recopié ton code mais à peine l'ai-je testé que j'ai un message d'erreur:
"Il n'existe aucune propriété nommée 'ra'.
         objet_couleur.ra--;"
Est-ce une erreur de syntaxe?
 
Commenter la réponse de delf013
Messages postés
12
Date d'inscription
mercredi 26 janvier 2005
Dernière intervention
19 avril 2007
0
Merci
Héhéhéhéhé ça fonctionne!
Merci beaucoup.
J'ai encore quelques problèmes pour attribuer cette fonction aux clips que je veux mais je vais me débrouiller toute seule (et oui faut bien que je me prenne aussi un peu la tête de mon coté si je veux progresser^^).
Et ce code m'aide déjà beaucoup.
Donc encore une fois, un grand merci.

 
Commenter la réponse de delf013
Messages postés
25
Date d'inscription
dimanche 6 septembre 2009
Dernière intervention
2 juillet 2010
0
Merci
Bonjour,
J'ai a peu prêt le même problème, voila j'ai recréé un appareil photos de type Holga en as2.
j'ai un clip "ensemble" qui lorsque l'on clique sur le déclencheur charge aléatoirement des images dispo dans la bibliothèque.
Le principe du holga est qu'il permette de faire de la surimpression, (j'ai réussi parfaitement a recrée cette effet), j'aimerai maintenant arrivé a modifié la luminosité des mes images selon le temps passé a appuyé sur le déclencheur; j'espère que c'est claire en gros plus je clique plus l'image est "brulé", est t-il possible d'adapté ton bout de code avec un "timer" ?
merci beaucoup
bonne journée
Commenter la réponse de patrickart

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.