topical media & game development
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.