topical media & game development

talk show tell print

student-ar-org-papervision3d-core-effects-BitmapMotionEffect.ax

student-ar-org-papervision3d-core-effects-BitmapMotionEffect.ax [swf] [flash] flex


  
...
author: Default
version: 0.1

  
  
  package org.papervision3d.core.effects {
          import flash.display.BitmapData;
          import flash.display.BlendMode;
          import flash.filters.BitmapFilter;
          import flash.geom.Point;
          
          import org.papervision3d.view.layer.BitmapEffectLayer;
  
          public class @ax-student-ar-org-papervision3d-core-effects-BitmapMotionEffect extends AbstractEffect{
                  
                  private var layer:BitmapEffectLayer;
                  private var filter:BitmapFilter;
                  private var color:uint;
                  public var now:BitmapData;
                  public var before:BitmapData;
                  public var buffer:BitmapData;
                  
                  public function @ax-student-ar-org-papervision3d-core-effects-BitmapMotionEffect(color:uint = 0xFF00FF00){
                          this.color = color;
                  }
  
                  
                  public override function attachEffect(layer:BitmapEffectLayer):void{
                          
                          this.layer = BitmapEffectLayer(layer);
                          var WIDTH:int = layer.width;
                          var HEIGHT:int = layer.height;
                          
                          now = new BitmapData(WIDTH, HEIGHT, true);
                          before = new BitmapData(WIDTH, HEIGHT, true);
                          buffer = new BitmapData(WIDTH, HEIGHT, true);
                          
                  }
                  public override function preRender():void{
                          
                          before.copyPixels(buffer, buffer.rect, new Point());
                  }
                  
                  public override function postRender():void{
                          
                          buffer.draw(layer.drawLayer, layer.getTranslationMatrix());
                          
                          /*
                          //TO RENDER EFFECT INTO SAME LAYER
                          now.copyPixels(buffer, buffer.rect, new Point());
                          now.draw(before, null, null, BlendMode.DIFFERENCE);
                          now.threshold(now, now.rect, new Point(), ">", 0xFF111111, color, 0xFFFFFFFF, false);
                          layer.canvas.draw(now, null, null, BlendMode.ADD); */
                          
                          //TO REPLACE CURRENT CONTENT
                           layer.canvas.copyPixels(buffer, buffer.rect, new Point());
                          layer.canvas.draw(before, null, null, BlendMode.DIFFERENCE);
                          layer.canvas.threshold(layer.canvas, layer.canvas.rect, new Point(), ">", 0xFF101010, color, 0xFFFFFFFF, false); 
                          
                          
                  }
          }
          
  }
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.