`
myzhijie
  • 浏览: 28695 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

flash as 3利用滤镜变换位图颜色

阅读更多
转至 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_programming.pdf

    《Flash AS3编程指南》是一本深入探讨ActionScript 3.0的卓越手册,专为想要掌握Flash平台上的动态交互和动画开发的开发者设计。ActionScript是Adobe Flash的基础,是创建交互式内容、游戏和应用程序的关键语言。这...

    flash as3.0 图片随机过渡效果

    在本文中,我们将深入探讨如何在Flash AS3.0中实现图片的随机过渡效果。这一技术主要用于提升用户体验,为数字媒体展示、网页设计或者互动应用增添动态视觉效果。以下是关于这个主题的一些关键知识点: 1. **AS3.0...

    Flash3D线条与填充

    在Flash中,你可以使用ActionScript(AS)来控制填充的方式,比如设置颜色、透明度、渐变方向或使用自定义的纹理。这对于创建具有真实感的3D模型至关重要,因为填充能够模拟光线投射到物体表面产生的阴影和反射效果...

    AS3_显示对象结构图.pdf

    * ColorMatrixFilter:是一个颜色矩阵滤镜,用于对显示对象进行颜色矩阵变换。 * ConvolutionFilter:是一个卷积滤镜,用于对显示对象进行卷积运算。 V. Error 类 AS3 显示对象结构图中还定义了一些错误类,例如:...

    as3.0做特效

    使用AS3.0的滤镜、扭曲和矩阵变换功能,可以实现图像之间的复杂转换,创造出令人印象深刻的视觉效果。 7. **镜头模糊2和镜头模糊**: 镜头模糊效果模拟了摄影中景深的概念,可以使焦点区域清晰,而其他区域模糊。AS...

    AS3开发指南

    Flash AS3.0开发人员指南是一本针对AS3.0编程语言的入门级教程,提供了基础知识和高级特性的详细讲解。该指南涵盖了日期和时间的操作、字符串处理、数组使用、错误处理、正则表达式、XML和JSON处理、事件处理、绘图...

    [Flash as3.0动画教程]文字版

    ### Flash AS3.0动画教程知识点汇总 #### 一、ActionScript动画基础 **1.1 什么是动画** - **定义**: 动画是通过连续播放一系列图像来产生视觉效果的技术,使静止的图像看起来像在移动或发生变化。 - **原理**: ...

    as3.0 cookbook 完整版

    - **转换动画**:通过变换矩阵和位置属性,可以在AS3中实现平移、旋转和缩放等转换动画,从而创造出动态效果。 #### 11. 动画编程 - **时间轴动画**:时间轴动画是AS3中最常见的动画形式之一。它通过控制对象的关键...

    AS3.0 初学者特效制作

    2. **颜色操作(Colorballs、colorball_world)**:AS3提供了强大的颜色处理能力,包括色彩混合、渐变和滤镜。例如,你可以通过改变像素的颜色值来实现色彩变换的特效,或者使用BitmapData对象进行像素级别的操作。 ...

    as3.0图片切换随机效果(10种)

    3. **缩放效果**:图片在切换时放大或缩小,提供了一种动态视角变换。使用scaleX和scaleY属性,配合时间轴控制,可以实现自然的缩放过渡。 4. **旋转效果**:图片在切换时绕着一个轴心旋转,增加了视觉趣味性。利用...

    动态显示图片flash的程序

    7. **AS3的图形API**:ActionScript 3.0提供了强大的图形处理API,如BitmapData类,可以直接处理像素级别操作,实现图片的裁剪、旋转、滤镜等效果。 8. **优化与性能**:考虑到Flash的内存管理和渲染性能,动态显示...

    ActionScript3.0开发人员指南

    - **可用的显示滤镜**:列举AS3中提供的各种滤镜类型,包括颜色矩阵滤镜、扭曲滤镜等。 - **筛选显示对象示例:FilterWorkbench**:通过构建一个滤镜测试平台,演示如何在实际项目中应用和组合多种滤镜效果。 #### ...

    Flash ActionScript 3.0动画教程中文版高清晰.pdf

    - **颜色变换和滤镜**:探索如何改变颜色属性和应用各种视觉效果。 - **位图处理**:包括加载、嵌入和操作位图图像的技巧。 - **内容加载和嵌入**:教授如何在动画中加载或内联外部资源。 #### 8. 高级运动控制 - *...

Global site tag (gtag.js) - Google Analytics