⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitmapmotioneffect.as

📁 一个2D基于verlet的Flash物理引擎。它用AS3编写而成。Fisix的目标是应用到游戏等计算量很大的实时应用中。尽管flash比c/c++要慢,很棒的物理引擎
💻 AS
字号:
/**
* ...
* @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.core.layers.*;

	public class 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 BitmapMotionEffect(color:uint = 0xFF00FF00){
			this.color = color;
		}

		
		public override function attachEffect(layer:EffectLayer):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); 
			
			
		}
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -