转至 flash CS5 官方帮助文档
以下示例将不同的颜色矩阵滤镜应用于图像文件。滤镜构造函数调用 buildChild() 四次,以加载和显示图像的四个实例。对 buildChild() 的第一次调用将 null 作为参数,不将滤镜应用于第一个实例。对 buildChild() 的每次后续调用都将函数作为参数,该函数将不同的颜色矩阵滤镜应用于图像的每个后续实例。
buildChild() 函数创建一个名为 loader 的新 Loader 对象。每次调用 buildChild() 时,将一个事件侦听器附加到 Loader 对象,以侦听 complete 事件,这些事件由传递给 buildChild() 的函数处理。
applyRed()、applyGreen() 和 applyBlue() 函数使用 matrix 数组的不同值来实现不同的效果。
注意:为获得最佳效果,请使用宽度约为 80 像素的图像。图像文件的名称和位置应与您传递给 url 属性的值相匹配。例如,此示例中传递给 url 的值指向名为“Image.jpg”的图像文件,该图像文件与 SWF 文件位于同一目录中。
package {
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.filters.ColorMatrixFilter;
import flash.net.URLRequest;
public class ColorMatrixFilterExample extends Sprite {
private var size:uint = 140;
private var url:String = "Image.jpg";
public function ColorMatrixFilterExample() {
buildChild(null);
buildChild(applyRed);
buildChild(applyGreen);
buildChild(applyBlue);
}
private function buildChild(loadHandler:Function):void {
var loader:Loader = new Loader();
loader.x = numChildren * size;
loader.y = size;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
if (loadHandler != null) {
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler);
}
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function applyRed(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([1, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 0, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 0, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyGreen(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([0, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 1, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 0, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyBlue(event:Event):void {
var child:DisplayObject = DisplayObject(event.target.loader);
var matrix:Array = new Array();
matrix = matrix.concat([0, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 0, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 1, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
applyFilter(child, matrix);
}
private function applyFilter(child:DisplayObject, matrix:Array):void {
var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
var filters:Array = new Array();
filters.push(filter);
child.filters = filters;
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + url);
}
}
}
分享到:
相关推荐
AS3.0滤镜类及应用 在AS 3.0中加入了滤镜类,使用滤镜类,可以实现改变颜色、形状、大小、旋 转或其他显示效果。本节将重点讲述滤镜类及其用法
AS3滤镜效果集合 集合了大部分AS3.0语言的滤镜效果 有截图说明的word文档
本例介绍运用Flash 的AS3 代码实现滤镜动画效果的制作,译者详细解释了代码的运用, 喜欢本效果的朋友可以动手试试
PS 3D变换滤镜 PS 3D变换滤镜 PS 3D变换滤镜
压缩包内是一个.exe文件,导入图片后,通过修改ColorMatrixFilter的Matrix属性的参数可以直观看到图片添加滤镜后的变化。方便大家找到合适的参数。
无需flash即可实现图片滤镜效果,只需要几行代码即可搞定
flash as2访3D旋转 fla+swf+xml+图片文件 涉及到xml应用,椭圆轨迹分布,模糊滤镜等~~
flash Rorschach(噪点滤镜)
利用时间轴特效、滤镜和混合模式制作一个综合应用范例。在有百页窗格的若隐若隐的背景图片上,湖蓝色画框玲珑剔透宛如水晶雕成,画框内图片五光十色,变幻不定。
可以将图片制作在立体图形中,安装方便,操作简单。
3D变换滤镜是Photoshop最复杂的自带滤镜之一。它经常被选择用于创建柱体,球面或是立方体。如果你不精通它的控制,那么常常会在创作中被它折磨的垂头丧气。本篇将结合一个酒瓶商标的实例,向大家展示这个滤镜的用法...
遮罩动画 第五章实验三Flash之遮罩与滤镜的使用.rar
3D变换的特效-----Rotate3dAnimation 可以参考http://blog.163.com/benben_long/blog/static/19945824320141117443156/
3D_Maker滤镜和安装说明
flash滤镜制作光芒文字,并且还有Flash雪花特效,flash滤镜你用过吗?功能相当强大,可实现很多文字和图片效果,如演示截图所示,文字会发光,而且雪花飘落的效果也是基于Flash实现的,是不是相当强大?
Matlab 简单图像滤镜GUI 代码,鼠标选取部分图像可以指定颜色滤除(RGB),并且可实现马赛克功能。
CS3液化滤镜 支持CS3 万能液化滤镜 喜欢的支持下吧
类似于Flash的JavaScript图片切换(带滤镜)效果,包括自动换图(带滤镜效果),鼠标移上去换图(不带滤镜效果),可自己更改!里面注释很详细!
图片旋转缩放翻转变换效果(css3滤镜canvas).zip 图片旋转缩放翻转变换效果(css3滤镜canvas).zip 图片旋转缩放翻转变换效果(css3滤镜canvas).zip