静岡理工科大学 菅沼ホーム ActionScript 目次 索引

DisplacementMapFilter クラス

[内容]

  置き換えマップを使用して,ターゲットイメージにおける各ピクセルを移動させます.ターゲットイメージのピクセル [x, y] は,以下に示す式によって,新しい位置 [nx, ny] に移動します.
	[nx, ny] = [x + ((componentX(x, y) - 128) * scaleX) / 256, 
	            y + ((componentY(x, y) - 128) * scaleY) / 256)]
 ただし
	componentX(x, y) : [(x - mapPoint.x, y - mapPoint.y)]
                       における componentX で指定されたカラー値
	componentY(x, y) : [(x - mapPoint.x, y - mapPoint.y)]
                       における componentY で指定されたカラー値
		
継承: DisplacementMapFilter → BitmapFilter → Object

[プロパティ]

[メソッド]

[使用例]

  1. DisplacementMapFilter フィルタの使用例」と,そのプログラム( DisplacementMapFilter_e.as )です.
    package
    {
    	import flash.display.Sprite;
    	import flash.display.Bitmap;
    	import flash.display.BitmapData;
    	import flash.display.BitmapDataChannel;
    	import flash.filters.DisplacementMapFilter;
    	import flash.geom.Point;
    
    	[SWF(backgroundColor="0xeeffee", width="300", height="200", frameRate="20")]
    
    	public class DisplacementMapFilter_e extends Sprite
    	{
    		public function DisplacementMapFilter_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var x1 : int, y1 : int;
    			var bmd1 : BitmapData = new BitmapData(stage.stageWidth/2, stage.stageHeight, true, 0x00000000);
    			for(x1 = 25; x1 <= 125; x1++) {
    				for(y1 = 50; y1 < 100; y1++)
    					bmd1.setPixel32(x1, y1, 0xffff0000);
    				for(y1 = 100; y1 <= 150; y1++)
    					bmd1.setPixel32(x1, y1, 0xff00ff00);
    			}
    			var bmd2 : BitmapData = bmd1.clone();
    			var bm1 : Bitmap = new Bitmap(bmd1);
    			var bm2 : Bitmap = new Bitmap(bmd2);
    			bm2.x = 150;
    			var map : BitmapData = new BitmapData(stage.stageWidth/2, stage.stageHeight, true, 0x00000000);
    			for(x1 = 25; x1 < 75; x1++) {
    				for(y1 = 50; y1 <= 150; y1++)
    					map.setPixel32(x1, y1, 0xffff0000);
    			}
    			for(x1 = 75; x1 <= 125; x1++) {
    				for(y1 = 50; y1 <= 150; y1++)
    					map.setPixel32(x1, y1, 0xff00ff00);
    			}
    			bm2.filters = [new DisplacementMapFilter(map, new Point(0,0), BitmapDataChannel.RED, BitmapDataChannel.GREEN, 0, 100)];
    			addChild(bm1);
    			addChild(bm2);
    		}
    	}
    }
    			

[参照]

Bitmap クラスBitmapData クラスBitmapFilter クラスPoint クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引