打印

[AS1&2] [AS3]我的第一个Flash CS3组件—ImageEffect组件

[AS3]我的第一个Flash CS3组件—ImageEffect组件
原文地址:http://www.klstudio.com/post/127.html
【功能简述】:ImageEffect组件是用来对Bitmap图片对象进行“马赛克,模糊,锐化,浮雕”等特效处理的纯代码组件。
【运行平台】:Flash CS3,ActionScript3,Flash Player 9 +
【功能演示】:
http://www.klstudio.com/demo/effect/test3.swf
【调用接口】:类路径为com.klstudio.images.ImageEffect。
    1、public static function mosaic(image:Bitmap,distance:uint=5):void
        功能:马赛克处理;
        参数:image为需要处理图片对象;
                    distance为马赛克强度(取值>= 2)。
    2、public static function blur(image:Bitmap,blurX:uint=4,blurY:uint=4):void
        功能:模糊处理;
        参数:image为需要处理图片对象;
                    blurX为水平模糊量;
                    blurY为垂直模糊量;
    3、public static function emboss(image:Bitmap,direction:String = null):void
        功能:浮雕处理;
        参数:image为需要处理图片对象;
                    direction为浮雕方位。
                    取值列表:
                        ImageEffect.DIRECTION_BOTTOM 表示正下方;
                        ImageEffect.DIRECTION_BOTTOM_LEFT 表示左下方;
                        ImageEffect.DIRECTION_BOTTOM_RIGHT 表示右下方;
                        ImageEffect.DIRECTION_LEFT 表示正左方;
                        ImageEffect.DIRECTION_RIGHT 表示正右方;
                        ImageEffect.DIRECTION_TOP 表示正上方;
                        ImageEffect.DIRECTION_TOP_LEFT 表示左上方(这个是默认值);
                        ImageEffect.DIRECTION_TOP_RIGHT 表示右上方;
    4、public static function sharpen(image:Bitmap,quality:uint=3):void
        功能:锐化处理;
        参数:image为需要处理图片对象;
                    quality为锐化品质。
                    取值列表:
                        ImageEffect.QUALITY_HIGH 表示高品质(这个是默认值);
                        ImageEffect.QUALITY_MEDIUM 表示中品质;
                        ImageEffect.QUALITY_LOW 表示低品质;
【使用说明】:
       1、使用前提条件:
              安装了Flash CS3软件;
              安装了 Adobe Extension Manager 1.8扩展管理器,如果没有请先到这里下载:http://www.adobe.com/cn/exchange/em_download/
              下载了ImageEffect组件安装包文件:ImageEffect.mxp
       2、打开ImageEffect组件安装包,将ImageEffect组件安装到Flash CS3里;
       3、将ImageEffect组件拖到正在打开的fla文件的场景或库里,然后在调用代码(或类)的上面加上“import com.klstudio.images.ImageEffect;”一行代码就可以了,接下来就按照上面的接口来调用相应的功能了。
【调用实例】:
复制内容到剪贴板
代码:
/**
* ...
* @author Kinglong
* @version 0.1
*/
package project.test {
    
    import flash.display.*;
    import flash.events.*;
    import flash.filters.*;
    import flash.text.*;
    import flash.net.URLRequest;    
    
    //导入系统组件;
    import fl.controls.ComboBox;
    
    //导入图片特效处理类ImageEffect;
    import com.klstudio.images.ImageEffect;
    
    public class Test3 extends Sprite{
        
        //源图片对象;
        private var src_bmp:Bitmap;        
        //处理后图片对象;
        private var new_bmp:Bitmap;
        
        private var effect_cb:ComboBox;
        
        public function Test3(){
            
            stage.scaleMode = StageScaleMode.NO_SCALE;
            
            //特效类型选择框;
            effect_cb = new ComboBox();            
            effect_cb.move(5,5);
            effect_cb.addItem({label:"马赛克",data:"mosaic"});
            effect_cb.addItem({label:"浮雕",data:"emboss"});
            effect_cb.addItem({label:"高斯模糊",data:"blur"});
            effect_cb.addItem({label:"锐化",data:"sharpen"});
            effect_cb.addEventListener(Event.CHANGE,changeEffectHandler);
            addChild(effect_cb);            
            
            //加载图片;
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);
            loader.load(new URLRequest("/demo/effect/Image.jpg"));
        }
        //图片加载完成事件;
        private function completeHandler(event:Event):void{
            //获得图片对象src_bmp,设置并显示它;
            src_bmp = event.target.content as Bitmap;
            src_bmp.x = 0;
            src_bmp.y = 30;
            addChild(src_bmp);
            //复制一个新图片对象new_bmp;
            new_bmp = copyImage(src_bmp);
            new_bmp.x = 300;
            new_bmp.y = 30;
            addChild(new_bmp);
            //对图片对象进行马赛克特效处理;
            ImageEffect.mosaic(new_bmp);
        }
        
        private function changeEffectHandler(event:Event):void{
            var tmp_bmp:Bitmap = copyImage(src_bmp);
            switch(event.target.value){
                case "mosaic":                    
                    ImageEffect.mosaic(tmp_bmp);
                    new_bmp.bitmapData = tmp_bmp.bitmapData;
                break;
                case "emboss":                    
                    ImageEffect.emboss(tmp_bmp);
                    new_bmp.bitmapData = tmp_bmp.bitmapData;
                break;
                case "blur":                    
                    ImageEffect.blur(tmp_bmp);
                    new_bmp.bitmapData = tmp_bmp.bitmapData;
                break;
                case "sharpen":                    
                    ImageEffect.sharpen(tmp_bmp);
                    new_bmp.bitmapData = tmp_bmp.bitmapData;
                break;
            }
        }
        
        //复制图片对象;
        public function copyImage(image:Bitmap):Bitmap{
            return new Bitmap(image.bitmapData.clone());
        }
    }
    
}
[ 本帖最后由 kinglong 于 2007-6-16 01:13 编辑 ]
本帖最近评分记录
Kinglong 's Blog
专注研究Flash,FCS/FMS,CF,JS,AS,Java,C#等相关技术
cool~
呵呵,不错,顶!
英领科技 引领潮流

TOP

认证您的手机,获得手机认证图标, 更多手机认证的好处