有才华的人,别忘记给滋润你的那块土壤施肥

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  28 随笔 :: 5 文章 :: 147 评论 :: 0 Trackbacks
滤镜的工作原理
显示对象过滤是通过将原始对象的副本缓存为透明位图来工作的。
将滤镜应用于显示对象后,只要此对象具有有效的滤镜列表,Adobe Flash Player 就会将该
对象缓存为位图。然后,将此位图用作所有后续应用的滤镜效果的原始图像。
每个显示对象通常包含两个位图:一个包含原始未过滤的源显示对象,另一个用于过滤后的
最终图像。呈现时使用最终图像。只要显示对象不发生更改,最终图像就不需要更新。

在运行时更改滤镜
如果已经对显示对象应用了一个或多个滤镜,则无法向 filters 属性数组添加其它滤镜。若
要添加或更改应用的这组滤镜,需要创建整个滤镜数组的副本,然后对此(临时)数组进行
修改。然后,将此数组重新分配给显示对象的 filters 属性,这样才能将滤镜应用于该对
象。

滤镜和对象变形
在显示对象的边框矩形之外的任何过滤区域(例如投影)都不能视为可进行点击检测(确定
实例是否与其它实例重叠或交叉)的表面。由于 DisplayObject 类的点击检测方法是基于矢
量的,因此无法在位图结果上执行点击检测。例如,如果您对按钮实例应用斜角滤镜,则在
该实例的斜角部分,点击检测不可用。
滤镜不支持缩放、旋转和倾斜;如果过滤的显示对象本身进行了缩放(如果 scaleX 和
scaleY 不是 100%),则滤镜效果将不随该实例缩放。这意味着,实例的原始形状将旋转、
缩放或倾斜;而滤镜不随实例一起旋转、缩放或倾斜。
可以使用滤镜给实例添加动画,以形成理想的效果,或者嵌套实例并使用 BitmapData 类使
滤镜动起来,以获得此效果。

可用的显示滤镜
ActionScript 3.0 包括 9 个可用于显示对象和 BitmapData 对象的滤镜类:
■ 斜角滤镜(BevelFilter 类)
■ 模糊滤镜(BlurFilter 类)
■ 投影滤镜(DropShadowFilter 类)
■ 发光滤镜(GlowFilter 类)
■ 渐变斜角滤镜(GradientBevelFilter 类)
■ 渐变发光滤镜(GradientGlowFilter 类)
■ 颜色矩阵滤镜(ColorMatrixFilter 类)
■ 卷积滤镜(ConvolutionFilter 类)
■ 置换图滤镜(DisplacementMapFilter 类)

斜角滤镜
BevelFilter 类允许您对过滤的对象添加三维斜面边缘。此滤镜可使对象的硬角或边缘具有硬
角或边缘被凿削或呈斜面的效果。
BevelFilter 类属性允许您自定义斜角的外观。您可以设置加亮和阴影颜色、斜角边缘模糊、
斜角角度和斜角边缘的位置,甚至可以创建挖空效果。

模糊滤镜
BlurFilter 类可使显示对象及其内容具有涂抹或模糊的效果。模糊效果可以用于产生对象不
在焦点之内的视觉效果,也可以用于模拟快速运动,比如运动模糊。通过将模糊滤镜的
quality 属性设置为低,可以模拟轻轻离开焦点的镜头效果。将 quality 属性设置为高会
产生类似高斯模糊的平滑模糊效果。

投影滤镜
投影给人一种目标对象上方有独立光源的印象。可以修改此光源的位置和强度,以产生各种
不同的投影效果。
投影滤镜使用与模糊滤镜的算法相似的算法。主要区别是投影滤镜有更多的属性,您可以修
改这些属性来模拟不同的光源属性(如 Alpha、颜色、偏移和亮度)。
投影滤镜还允许您对投影的样式应用自定义变形选项,包括内侧或外侧阴影和挖空(也称为
剪切块)模式。

发光滤镜
GlowFilter 类对显示对象应用加亮效果,使显示对象看起来像是被下方的灯光照亮,可创造
出一种柔和发光效果。
与投影滤镜类似,发光滤镜包括的属性可修改光源的距离、角度和颜色,以产生各种不同效
果。GlowFilter 还有多个选项用于修改发光样式,包括内侧或外侧发光和挖空模式。

渐变斜角滤镜
GradientBevelFilter 类允许您对显示对象或 BitmapData 对象应用增强的斜角效果。在斜
角上使用渐变颜色可以大大改善斜角的空间深度,使边缘产生一种更逼真的三维外观效果。

渐变发光滤镜
GradientGlowFilter 类允许您对显示对象或 BitmapData 对象应用增强的发光效果。该效
果可使您更好地控制发光颜色,因而可产生一种更逼真的发光效果。另外,渐变发光滤镜还
允许您对对象的内侧、外侧或上侧边缘应用渐变发光。

颜色矩阵滤镜
ColorMatrixFilter 类用于操作过滤对象的颜色和 Alpha 值。它允许您进行饱和度更改、色
相旋转(将调色板从一个颜色范围移动到另一个颜色范围)、将亮度更改为 Alpha,以及生
成其它颜色操作效果,方法是使用一个颜色通道中的值,并将这些值潜移默化地应用于其它
通道。
从概念上来说,滤镜将逐一处理源图像中的像素,并将每个像素分为红、绿、蓝和 Alpha 组
件。然后,用每个值乘以颜色矩阵中提供的值,将结果加在一起以确定该像素将显示在屏幕
上的最终颜色值。滤镜的 matrix 属性是一个由 20 个数字组成的数组,用于计算最终颜色。
有关用于计算颜色值的特定算法的详细信息,请参阅《ActionScript 3.0 语言和组件参考》
中说明 ColorMatrixFilter 类的 matrix 属性的条目。

 

卷积滤镜
ConvolutionFilter 类可用于对 BitmapData 对象或显示对象应用广泛的图像变形,如模
糊、边缘检测、锐化、浮雕和斜角。
从概念上来说,卷积滤镜会逐一处理源图像中的每个像素,并使用像素和它周围的像素的值
来确定该像素的最终颜色。指定为数值数组的矩阵可以指示每个特定邻近像素的值对最终结
果值具有何种程度的影响。

置换图滤镜
DisplacementMapFilter 类使用 BitmapData 对象(称为置换图图像)中的像素值在新对
象上执行置换效果。通常,置换图图像与将要应用滤镜的实际显示对象或 BitmapData 实例
不同。置换效果包括置换过滤的图像中的像素,也就是说,将这些像素移开原始位置一定距
离。此滤镜可用于产生移位、扭曲或斑点效果。
应用于给定像素的置换位置和置换量由置换图图像的颜色值确定。使用滤镜时,除了指定置
换图图像外,还要指定以下值,以便控制置换图图像中计算置换的方式:
■ 映射点:过滤图像上的位置,在该点将应用置换滤镜的左上角。如果只想对图像的一部
分应用滤镜,可以使用此值。
■ X 组件:影响像素的 x 位置的置换图图像的颜色通道。
■ Y 组件:影响像素的 y 位置的置换图图像的颜色通道。
■ X 缩放比例:指定 x 轴置换强度的乘数值。
■ Y 缩放比例:指定 y 轴置换强度的乘数值。
420 过滤显示对象
■ 滤镜模式:确定在移开像素后形成的空白区域中, Flash Player 应执行什么操作。在
DisplacementMapFilterMode 类中定义为常量的选项可以显示原始像素(滤镜模式
IGNORE)、从图像的另一侧环绕像素(滤镜模式 WRAP,这是默认设置)、使用最近的移
位像素(滤镜模式 CLAMP)或用颜色填充空间(滤镜模式 COLOR)。

posted on 2009-07-26 22:30 kissjava 阅读(953) 评论(0)  编辑  收藏 所属分类: Flex

只有注册用户登录后才能发表评论。


网站导航: