Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 置换贴图过滤器在蒙版图像上不起作用_Actionscript 3_Flash_Flash Builder - Fatal编程技术网

Actionscript 3 置换贴图过滤器在蒙版图像上不起作用

Actionscript 3 置换贴图过滤器在蒙版图像上不起作用,actionscript-3,flash,flash-builder,Actionscript 3,Flash,Flash Builder,这是我的问题 我有一张958*580的图片。当我对它应用置换贴图过滤器时,它工作得很好,我想要的区域也会相应地受到影响。当我遮罩这个图像时,它只显示过滤器应该作用的区域,什么也不显示。图像被遮罩,但该区域不再受过滤器的影响 我不确定我是否遗漏了位移贴图过滤器或遮罩本身的工作原理,但我希望这里的人能给我一个或两个关于这里可能存在的问题的指针 提前感谢。如果不看代码,很难说是什么导致了过滤器呈现问题。我从未见过这种行为。请尝试下面列出的代码,它应该对图像应用置换过滤器,然后用圆形遮罩它: impor

这是我的问题

我有一张958*580的图片。当我对它应用置换贴图过滤器时,它工作得很好,我想要的区域也会相应地受到影响。当我遮罩这个图像时,它只显示过滤器应该作用的区域,什么也不显示。图像被遮罩,但该区域不再受过滤器的影响

我不确定我是否遗漏了位移贴图过滤器或遮罩本身的工作原理,但我希望这里的人能给我一个或两个关于这里可能存在的问题的指针


提前感谢。

如果不看代码,很难说是什么导致了过滤器呈现问题。我从未见过这种行为。请尝试下面列出的代码,它应该对图像应用置换过滤器,然后用圆形遮罩它:

import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.filters.DisplacementMapFilter;
import flash.geom.Point;

// image is taken form the Library, alternatively you may use Embed metatag
var imageBitmapdata:BitmapData=new imageBd() as BitmapData; 
var bitmap:Bitmap=new Bitmap(imageBitmapdata);
bitmap.width=stage.stageWidth;
bitmap.height=stage.stageHeight;


var maskCircle:Sprite=new Sprite();
maskCircle.graphics.beginFill(0xFF00FF, 1);
maskCircle.graphics.drawCircle(300,300,300);
maskCircle.graphics.endFill();


bitmap.filters=[getBitmapFilter()];
bitmap.mask=maskCircle;

addChild(bitmap);
addChild(maskCircle);


function getBitmapFilter():BitmapFilter {
    var bitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true);
    bitmapData.perlinNoise(20, 20, 4, 12, true, true);
    var mapBitmap:BitmapData = bitmapData;
    return new DisplacementMapFilter(mapBitmap,new Point(0, 0),
                                 BitmapDataChannel.RED,
                                 BitmapDataChannel.RED,
                                 -20,
                                 -20,
                                 DisplacementMapFilterMode.CLAMP,
                                 0,
                                 0);
}