转至 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);
}
}
}
分享到:
相关推荐
《Flash AS3编程指南》是一本深入探讨ActionScript 3.0的卓越手册,专为想要掌握Flash平台上的动态交互和动画开发的开发者设计。ActionScript是Adobe Flash的基础,是创建交互式内容、游戏和应用程序的关键语言。这...
在本文中,我们将深入探讨如何在Flash AS3.0中实现图片的随机过渡效果。这一技术主要用于提升用户体验,为数字媒体展示、网页设计或者互动应用增添动态视觉效果。以下是关于这个主题的一些关键知识点: 1. **AS3.0...
在Flash中,你可以使用ActionScript(AS)来控制填充的方式,比如设置颜色、透明度、渐变方向或使用自定义的纹理。这对于创建具有真实感的3D模型至关重要,因为填充能够模拟光线投射到物体表面产生的阴影和反射效果...
* ColorMatrixFilter:是一个颜色矩阵滤镜,用于对显示对象进行颜色矩阵变换。 * ConvolutionFilter:是一个卷积滤镜,用于对显示对象进行卷积运算。 V. Error 类 AS3 显示对象结构图中还定义了一些错误类,例如:...
使用AS3.0的滤镜、扭曲和矩阵变换功能,可以实现图像之间的复杂转换,创造出令人印象深刻的视觉效果。 7. **镜头模糊2和镜头模糊**: 镜头模糊效果模拟了摄影中景深的概念,可以使焦点区域清晰,而其他区域模糊。AS...
Flash AS3.0开发人员指南是一本针对AS3.0编程语言的入门级教程,提供了基础知识和高级特性的详细讲解。该指南涵盖了日期和时间的操作、字符串处理、数组使用、错误处理、正则表达式、XML和JSON处理、事件处理、绘图...
### Flash AS3.0动画教程知识点汇总 #### 一、ActionScript动画基础 **1.1 什么是动画** - **定义**: 动画是通过连续播放一系列图像来产生视觉效果的技术,使静止的图像看起来像在移动或发生变化。 - **原理**: ...
- **转换动画**:通过变换矩阵和位置属性,可以在AS3中实现平移、旋转和缩放等转换动画,从而创造出动态效果。 #### 11. 动画编程 - **时间轴动画**:时间轴动画是AS3中最常见的动画形式之一。它通过控制对象的关键...
2. **颜色操作(Colorballs、colorball_world)**:AS3提供了强大的颜色处理能力,包括色彩混合、渐变和滤镜。例如,你可以通过改变像素的颜色值来实现色彩变换的特效,或者使用BitmapData对象进行像素级别的操作。 ...
3. **缩放效果**:图片在切换时放大或缩小,提供了一种动态视角变换。使用scaleX和scaleY属性,配合时间轴控制,可以实现自然的缩放过渡。 4. **旋转效果**:图片在切换时绕着一个轴心旋转,增加了视觉趣味性。利用...
7. **AS3的图形API**:ActionScript 3.0提供了强大的图形处理API,如BitmapData类,可以直接处理像素级别操作,实现图片的裁剪、旋转、滤镜等效果。 8. **优化与性能**:考虑到Flash的内存管理和渲染性能,动态显示...
- **可用的显示滤镜**:列举AS3中提供的各种滤镜类型,包括颜色矩阵滤镜、扭曲滤镜等。 - **筛选显示对象示例:FilterWorkbench**:通过构建一个滤镜测试平台,演示如何在实际项目中应用和组合多种滤镜效果。 #### ...
- **颜色变换和滤镜**:探索如何改变颜色属性和应用各种视觉效果。 - **位图处理**:包括加载、嵌入和操作位图图像的技巧。 - **内容加载和嵌入**:教授如何在动画中加载或内联外部资源。 #### 8. 高级运动控制 - *...