着色器滤镜

Flash Player 10 和更高版本,Adobe AIR 1.5 和更高版本

ShaderFilter 类可使用定义为 Pixel Bender 着色器的自定义滤镜效果。由于该滤镜效果是以 Pixel Bender 着色器形式编写的,因此可完全自定义。过滤内容将作为图像输入传递给着色器,着色器操作的结果就是滤镜结果。

注: 从 Flash Player 10 和 Adobe AIR 1.5 开始,在 ActionScript 中提供着色器滤镜。

若要对某个对象应用着色器滤镜,首先应创建一个表示要使用的 Pixel Bender 着色器的 Shader 实例。有关 Shader 实例创建过程以及如何指定输入图像和参数值的详细信息,请参阅 使用 Pixel Bender 着色器

将着色器用作滤镜时,请记住以下三个要点:

  • 必须将着色器定义为至少接受一个输入图像。

  • 将过滤对象(为之应用滤镜的显示对象或 BitmapData 对象)作为第一个输入图像值传递给着色器。因此,不要为第一个图像输入手动指定值。

  • 如果着色器定义了多个输入图像,则必须手动指定其他输入(即,为属于 Shader 实例的任何 ShaderInput 实例设置 input 属性)。

创建着色器的 Shader 对象后,即创建了一个 ShaderFilter 实例。这就是使用方法与其他所有滤镜相同的实际滤镜对象。若要创建使用 Shader 对象的 ShaderFilter,请调用 ShaderFilter() 构造函数,并将 Shader 对象作为参数传递,如下所示:

var myFilter:ShaderFilter = new ShaderFilter(myShader);

有关使用着色器滤镜的完整示例,请参阅 使用着色器作为滤镜