Classe pour pouvoir faire très facilement un effet de flou de vitesse sur toute votre scène (ou partiellement), réalisée en AS3.
Ici le principe est simple : mixer les X dernières images rendues entre elles, rendant une impression de flou de vitesse, ce nombre d'images X est réglable.
Une deuxième méthode est disponible : mixer l'image actuelle avec une autre image qui est elle même un mix des dernières images rendues à l'écran. Cette deuxième méthode est moins couteuse en calcul, mais le rendu est légèrement différant... A vous de choisir ce qui vous convient le mieu.
3 exemples d'utilisation fournits:
Main.swf - simple rond dirigé par la souris.
PhysicExemple.swf - plusieurs ronds rebondissent sur les bords de la fenêtre.
GifExemple.swf - Application de l'effet sur des clips animés (l'animation n'est pas de moi)
Note:Les 3 exemples utilise la deuxième méthode de motion blur.
A savoir : Le motion blur permet de donner une impression de fluidité quand le FPS d'une animation tend vers des valeurs plutôt faibles.
Inconvénient de cette technique : L'effet de flou va dépendre du FPS de votre animation. Plus elle tournera lentement, plus l'effet donnera une impression de grandes trainées.
Source / Exemple :
Comment utiliser l'effet? 3 lignes.
import stefbuetFX.MotionBlur;
var mbEffect:MotionBlur=new MotionBlur(this, 5, stage.stageWidth, stage.stageHeight);
addEventListener(Event.ENTER_FRAME, mbEffect);
addChild(mbEffect);
Variante pour utiliser la deuxième méthode:
var mbEffect:MotionBlur=new MotionBlur(this, 0, stage.stageWidth, stage.stageHeight, true, 0.5);
Conclusion :
MotionBlur(rootNode:DisplayObject, samples:uint, width:uint, height:uint, useCostlessMethode:Boolean=false, persistance:Number=0.5) : Constructeur
rootNode : Sur quel objet appliquer le flou? la racine permet de prendre en compte toute la scène.
samples : Nombre d'images à utiliser dans le buffer.
width & height : dimensions de l'effet. Si vous ne savez pas quoi mettre, laisser les dimensions de la fenetre.
useCostlessMethode : envoyer true pour utiliser la deuxième méthode de rendu moins couteuse en calculs. Désactivé par Default.
persistance: Si deuxième méthode utilisée, facteur de transparence des rendus lors de leur mélange avec les précédents rendus, entre 0 et 1 (0 = pas de flou, 1 = flou max)
update(e:Event=null):void
peut être appelé manuellement ou par un écouteur d'evenement.
Permet de mettre à jour l'effet.
drop():void
Vide la mémoire.
Attention, n'utilisez plus l'effet après avoir utilisé cette méthode!