delf013
Messages postés12Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 avril 2007
-
8 avril 2007 à 21:41
patrickart
Messages postés24Date d'inscriptiondimanche 6 septembre 2009StatutMembreDerniè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.
Darkrats
Messages postés212Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention12 mai 20081 12 avril 2007 à 11:05
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 --------
tomm123456
Messages postés52Date d'inscriptionjeudi 8 décembre 2005StatutMembreDernière intervention11 avril 2007 9 avril 2007 à 10:27
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;......
delf013
Messages postés12Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 avril 2007 9 avril 2007 à 20:33
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
Darkrats
Messages postés212Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention12 mai 20081 10 avril 2007 à 14:12
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 --------
Vous n’avez pas trouvé la réponse que vous recherchez ?
delf013
Messages postés12Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 avril 2007 11 avril 2007 à 20:10
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?
delf013
Messages postés12Date d'inscriptionmercredi 26 janvier 2005StatutMembreDernière intervention19 avril 2007 14 avril 2007 à 10:09
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.
patrickart
Messages postés24Date d'inscriptiondimanche 6 septembre 2009StatutMembreDernière intervention 2 juillet 2010 24 mars 2010 à 10:45
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