Flash 8, exemple de flou

Soyez le premier à donner votre avis sur cette source.

Vue 44 739 fois - Téléchargée 4 283 fois

Description

Un exemple de ce que l'on peut faire avec les nouveautés de flash 8 ! Ici le filtre blur (flou).
En fait c'est juste 8 images décalés, et quand on passe la souris sur l'une d'elles, les autres deviennent flou proportionnelemnt à leur éloignement.
Ce code n'est peut-être pas la façon la + simple pour faire cette effet mais je vois pas comment faire autrement...
J'ai essayé de le commenter le mieux possible mais si c'est pas clair, demandez moi !
Je mets le code pour ceux qui n'ont pas flash 8 mais qui veulent le voir...

Source / Exemple :


// Il y a 8 clips, nommés clip1, clip2, clip3,...
// Nombre de couches :
nombre = 8;
// On dit que "blur" est un filtre de flou
blur = new flash.filters.BlurFilter(0, 0, 1);
// Une boucle pour tester chaque clip :
for (i=1; i<=nombre; i++) {
	// La variable varI de chaque clip est égale à i (pour pouvoir se reservir de
	// la variable i dans le onRollOver qui suit) :
	this["clip"+i].varI = i;
	// Quand on survole un des clips :
	this["clip"+i].onRollOver = function() {
		// Les valeur du flou blur, x et y, sont égaux à 0 :
		blur.blurX = blur.blurY=0;
		// On applique le filtre blur sur le bouton survolé, pour qu'il devienne net :
		this.filters = [blur];
		// Une boucle qui va servire à donner aux clips non suvolé une valeur de + en + flou :
		for (t=1; t<=nombre; t++) {
			// Les valeur du flou blur x et y sont égale à t fois 5, pour que +
			// le nom du clip à un chiffre éloigné de 0, plus il est flou :
			blur.blurX = blur.blurY=t*5;
			// On crée 2 variables pour que les clips supérieurs du clip survolés soit + flous :
			autre1 = this.varI+t;
			// Pareille pour les clips inférieurs :
			autre2 = this.varI-t;
			// On applique les filtres sur les clips supérieurs et inférieurs de celui survolé :
			_root["clip"+autre1].filters = [blur];
			_root["clip"+autre2].filters = [blur];
		}
	};
}
// Voila voila :-D

Conclusion :


C'est un petit exemple mais ca montre une des possibilités des nouveautés de flash 8 !
Voila voila, à vos commentaires !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Mafassure
Messages postés
1064
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009
-
salut !

excellent les filtres Flash 8 !!

un truc que je trouve pas trés élégant c'est onRollOver dans la boucle if....

sinon l'exemple est vraiment sympa !
cs_mouahaha
Messages postés
210
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
6 avril 2009
1 -
Effet sympa...
C'est vrai qu'avec Flash 8 on est tenté de les utiliser à la moindre occasion.
Ca risque de se voir dans quelques temps sur FlashKod...
Pas le temps de regarder le code, je verrais ca plus tard.
Wally57
Messages postés
71
Date d'inscription
mercredi 4 juin 2003
Statut
Membre
Dernière intervention
12 juillet 2006
-
Bah tant que ça part pas dans l'excès et que les filtres ne sont pas utilisés à tout va...
Sinon Mafassure , il y a une methode pour ne pas mettre le onRollOver dans une boucle ?
Vu que le ça concerne tous les clips, je connais pas d'autres solutions que la boucle...
cs_Mafassure
Messages postés
1064
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009
-
tu crée un proto
cs_Mafassure
Messages postés
1064
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009
-
var nbrClip:Number = 5;
var blurFilter:Object = new flash.filters.BlurFilter();
blurFilter.quality = 3;
bt = function () {
};
bt.prototype = new MovieClip();
bt.prototype.onLoad = function() {
//tu positionne le clip en fonction de son numéro
this._x = 200+this.id*-50;
this._y = 100+this.id*-25;
};
bt.prototype.onRollOver = function() {
this.filters = [0];
// tu applique le flou en fonction ---- pas terrible ici
for (t=1; t<nbrClip; t++) {
blurFilter.blurX = blurFilter.blurY=2*this.id;
_level0["clip"+t].filters = [blurFilter];
//flou nul pour le clip survolé
this.filters = [0];
}
};
//avec "clip" comme identifiant dans la biblio tu duplique le clip
Object.registerClass("clip", bt);
//attache movie pour placer les clip sur la scène
for (i=1; i<nbrClip; i++) {
attachMovie("clip", "clip"+i, i);
//crée une var id pour de reference
this["clip"+i].id = i;
}

un truc comme ca

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.