Après avoir vu comment créer un filtre pixel bender, nous allons maintenant voir comment utiliser ce filtre en as3…

Il faut tout d’abord exporter son filtre en .pbj, fichier qui sera loader en as3. Une fois cette première opération réaliser, il faut charger le pbj :
- Méthode 1, avec un fichier externe au swf :

package {
   
   /**
   *
   * Auteur: Vincent Helwig
   * Date: 27.10.2008
   * Website: http://www.tsoin.com
   * Description: Chargement d’un fichier PBJ Pixel Bender
   *
   **/

   import flash.display.Sprite;
   import flash.events.Event;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   import flash.net.URLLoaderDataFormat;
   import flash.display.Shader;

   [SWF(width = "600", height = "400", backgroundColor = "#000000", framerate = "30")]

   public class Main extends Sprite {

      private var _loader:URLLoader;
      private var _shader:Shader;

      public function Main():void {
         _loader = new URLLoader();
         _loader.dataFormat = URLLoaderDataFormat.BINARY;
         _loader.addEventListener(Event.COMPLETE, onLoadComplete);
         _loader.load(new URLRequest(« bleu.pbj »));
      }

      private function onLoadComplete(event:Event):void {
         _shader = new Shader( _loader.data );
      }

   }

}

- Méthode 2, avec un fichier intégré au swf :

package {

   /**
   *
   * Auteur: Vincent Helwig
   * Date: 27.10.2008
   * Website: http://www.tsoin.com
   * Description: Embed d’un fichier PBJ Pixel Bender
   *
   **/

   import flash.display.Sprite;
   import flash.display.Shader;
   import flash.utils.ByteArray;

   [SWF(width = "600", height = "400", backgroundColor = "#000000", framerate = "30")]

   public class Embed extends Sprite {

      [Embed("bleu.pbj", mimeType="application/octet-stream")]
      private var _pbjFilter:Class;

      private var _shader:Shader;

      public function Embed():void {
         _shader = new Shader( new _pbjFilter() as ByteArray );
      }

   }

}

Quelque soit la méthode du chargement, la méthode d’utilisation est ensuite la même :

private var _filtre:ShaderFilter;
_filtre = new ShaderFilter(_shader);

On peut alors utiliser le ShaderFitler sur tous les enfants héritant de la class DisplayObject, avec la propriété filters :

private var _display:DisplayObject = new DisplayObject();
_display.filters = [ _fitltre];

On peut donc appliquer un filtre Pixel Bender sur un champ texte, sur une vidéo, sur une image, sur un bitmap, un Sprite, un UIComponent etc…

Ci-dessous un exemple de différent filtre sur une vidéo…. ( Flash 10 nécessaire, bien sur ;) )

[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/PixelBender/001/Pixelbender001.swf" height="450" width="600" /]

Partager :
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

2 commentaires pour “Utiliser un filtre Pixel Bender en AS3”

  1. Ludo dit :

    Merci pour ce tuto, ça va surement m’aider =)

  2. Matthieu dit :

    Merci pour ce tuto qui m’en apprend plus sur Pixel Bender.

Laisser un commentaire