• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>AS基础篇>AS 3.0>文章内容
  • [AS3]我的第一个Flash CS3组件—ImageEffect组件
  • 来源:kinglong'blog 作者:kinglong 2007-06-17 【


【组件版本】:0.1
【功能简述】:ImageEffect组件是用来对Bitmap图片对象进行“马赛克,模糊,锐化,浮雕”等特效处理的纯代码组件。目前只有四个图片特效,以后将不断更新和丰富特效。
【运行平台】:Flash CS3,ActionScript3,Flash Player 9 +
【功能演示】:

【调用接口】:类路径为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;”一行代码就可以了,接下来就按照上面的接口来调用相应的功能了。
【调用实例】:

  1. /**  
  2. * ...  
  3. * @author Kinglong  
  4. * @version 0.1  
  5. */  
  6.   
  7. package project.test {   
  8.        
  9.     import flash.display.*;   
  10.     import flash.events.*;   
  11.     import flash.filters.*;   
  12.     import flash.text.*;   
  13.     import flash.net.URLRequest;       
  14.        
  15.     //导入系统组件;   
  16.     import fl.controls.ComboBox;   
  17.        
  18.     //导入图片特效处理类ImageEffect;   
  19.     import com.klstudio.images.ImageEffect;   
  20.        
  21.     public class Test3 extends Sprite{   
  22.            
  23.         //源图片对象;   
  24.         private var src_bmp:Bitmap;        
  25.         //处理后图片对象;   
  26.         private var new_bmp:Bitmap;   
  27.            
  28.         private var effect_cb:ComboBox;   
  29.            
  30.         public function Test3(){   
  31.                
  32.             stage.scaleMode = StageScaleMode.NO_SCALE;   
  33.                
  34.             //特效类型选择框;   
  35.             effect_cb = new ComboBox();            
  36.             effect_cb.move(5,5);   
  37.             effect_cb.addItem({label:"马赛克",data:"mosaic"});    
  38.             effect_cb.addItem({label:"浮雕",data:"emboss"});    
  39.             effect_cb.addItem({label:"高斯模糊",data:"blur"});    
  40.             effect_cb.addItem({label:"锐化",data:"sharpen"});    
  41.             effect_cb.addEventListener(Event.CHANGE,changeEffectHandler);   
  42.             addChild(effect_cb);               
  43.                
  44.             //加载图片;   
  45.             var loader:Loader = new Loader();   
  46.             loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler);   
  47.             loader.load(new URLRequest("/demo/effect/Image.jpg"));   
  48.   
  49.         }   
  50.         //图片加载完成事件;   
  51.         private function completeHandler(event:Event):void{   
  52.             //获得图片对象src_bmp,设置并显示它;   
  53.             src_bmp = event.target.content as Bitmap;   
  54.             src_bmp.x = 0;   
  55.             src_bmp.y = 30;   
  56.             addChild(src_bmp);   
  57.             //复制一个新图片对象new_bmp;   
  58.             new_bmp = copyImage(src_bmp);   
  59.             new_bmp.x = 300;   
  60.             new_bmp.y = 30;   
  61.             addChild(new_bmp);   
  62.             //对图片对象进行马赛克特效处理;   
  63.             ImageEffect.mosaic(new_bmp);   
  64.         }   
  65.            
  66.         private function changeEffectHandler(event:Event):void{   
  67.             var tmp_bmp:Bitmap = copyImage(src_bmp);   
  68.             switch(event.target.value){   
  69.                 case "mosaic":                     
  70.                     ImageEffect.mosaic(tmp_bmp);   
  71.                     new_bmp.bitmapData = tmp_bmp.bitmapData;   
  72.                 break;   
  73.                 case "emboss":                     
  74.                     ImageEffect.emboss(tmp_bmp);   
  75.                     new_bmp.bitmapData = tmp_bmp.bitmapData;   
  76.                 break;   
  77.                 case "blur":                       
  78.                     ImageEffect.blur(tmp_bmp);   
  79.                     new_bmp.bitmapData = tmp_bmp.bitmapData;   
  80.                 break;   
  81.                 case "sharpen":                    
  82.                     ImageEffect.sharpen(tmp_bmp);   
  83.                     new_bmp.bitmapData = tmp_bmp.bitmapData;   
  84.                 break;   
  85.             }   
  86.         }   
  87.            
  88.         //复制图片对象;   
  89.         public function copyImage(image:Bitmap):Bitmap{   
  90.             return new Bitmap(image.bitmapData.clone());   
  91.         }   
  92.     }   
  93.        
  94. }   

上面的实例打包下载:http://www.klstudio.com/demo/effect/test3.rar




上一篇:flash Actionscript 3 TextEvent   下一篇:[AS3]我的第二个Flash CS3组件—LRCParser组件
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)