AS3-DisplayEffect组件

[AS3]DisplayEffect组件
【组件版本】:0.5
【功能简述】:可对DisplayObject显示类进行模糊,锐化,浮雕,色调,亮度,对比度等特效处理。
【运行平台】:Flash CS3,ActionScript3,Flash Player 9 +
【功能演示】:
演示程序会自动测试你是否有摄像头,如果有就调用摄像头,如果没有就调用一个swf动画文件

 

 

 

 

[AS3]DisplayEffect组件
【组件版本】:0.5
【功能简述】:可对DisplayObject显示类进行模糊,锐化,浮雕,色调,亮度,对比度等特效处理。
【运行平台】:Flash CS3,ActionScript3,Flash Player 9 +
【功能演示】:
演示程序会自动测试你是否有摄像头,如果有就调用摄像头,如果没有就调用一个swf动画文件。
<script src="/media/swfobject.js" type="text/javascript"></script> <script type="text/javascript"></script>

【调用接口】:

  1. public interface com.klstudio.images.DisplayEffect {   
  2.   
  3.     //清除特效;   
  4.     function clear():void;   
  5.   
  6.     //高斯模糊(uint);   
  7.     function blur(blurX:uint=4,blurY:uint=4):void;   
  8.        
  9.     //浮雕([B,BL,BR,L,R,T,TL,TR],String);   
  10.     function emboss(direction:String = null):void;     
  11.        
  12.     //锐化([1~3],uint)   
  13.     function sharpen(quality:uint=3):void;   
  14.        
  15.     //色调([0x000000 ~ 0xFFFFFF],uint)   
  16.     function color(color:uint):void;   
  17.        
  18.     //亮度([-255~255],int)   
  19.     function brightness(offset:int):void;   
  20.        
  21.     //灰度   
  22.     function grayscale():void;   
  23.        
  24.     //饱和度([0~3],Number)   
  25.     function saturation(strength:Number):void;   
  26.        
  27.     //对比度([0~1],Number)   
  28.     function contrast(strength:Number):void;   
  29.        
  30.     //反相   
  31.     function invert():void;   
  32. }  

public interface com.klstudio.images.DisplayEffect { //清除特效; function clear():void; //高斯模糊(uint); function blur(blurX:uint=4,blurY:uint=4):void; //浮雕([B,BL,BR,L,R,T,TL,TR],String); function emboss(direction:String = null):void; //锐化([1~3],uint) function sharpen(quality:uint=3):void; //色调([0x000000 ~ 0xFFFFFF],uint) function color(color:uint):void; //亮度([-255~255],int) function brightness(offset:int):void; //灰度 function grayscale():void; //饱和度([0~3],Number) function saturation(strength:Number):void; //对比度([0~1],Number) function contrast(strength:Number):void; //反相 function invert():void; }

【实例调用】:

  1. package project.test {   
  2.        
  3.     import fl.controls.ComboBox;   
  4.        
  5.     import flash.filters.*;   
  6.     import flash.net.*;   
  7.     import flash.utils.*;   
  8.     import flash.display.*;    
  9.     import flash.events.*;     
  10.     import flash.media.Camera;   
  11.     import flash.media.Video;      
  12.     import flash.text.*;   
  13.        
  14.     import com.klstudio.images.DisplayEffect;   
  15.        
  16.   
  17.     public class Test8 extends Sprite{   
  18.         private var _src:DisplayObject;   
  19.         private var _new:DisplayObject;   
  20.         private var _df:DisplayEffect;   
  21.         private var _hasCam:Boolean;   
  22.         private var effect_cb:ComboBox;     
  23.         public function Test8(){   
  24.                
  25.             graphics.lineStyle(1,0x999999);   
  26.             graphics.beginFill(0xCCCCCC);   
  27.             graphics.drawRect(5,5,320,240);   
  28.             graphics.drawRect(330,5,320,240);   
  29.             var cam:Camera = Camera.getCamera();   
  30.             if(cam == null){       
  31.                 initLoader();   
  32.             }else{   
  33.                 initVideo(cam);   
  34.             }   
  35.                
  36.             effect_cb = new ComboBox();            
  37.             effect_cb.move(5,250);   
  38.             effect_cb.addItem({label:"浮雕",data:"emboss"});    
  39.             effect_cb.addItem({label:"高斯模糊",data:"blur"});    
  40.             effect_cb.addItem({label:"锐化",data:"sharpen"});   
  41.             effect_cb.addItem({label:"色调",data:"color"});    
  42.             effect_cb.addItem({label:"亮度",data:"brightness"});    
  43.             effect_cb.addItem({label:"对比度",data:"contrast"});   
  44.             effect_cb.addItem({label:"饱和度",data:"saturation"});    
  45.             effect_cb.addItem({label:"灰度",data:"grayscale"});    
  46.             effect_cb.addItem({label:"反相",data:"invert"});   
  47.             effect_cb.addEventListener(Event.CHANGE,changeEffectHandler);   
  48.             addChild(effect_cb);   
  49.                
  50.             var id:uint = getRndNumber(0,effect_cb.length);   
  51.             effect_cb.selectedIndex = id;   
  52.             switch(id){   
  53.                 case 0:                    
  54.                     _df.emboss();   
  55.                 break;   
  56.                 case 1:                    
  57.                     _df.blur(15,15);   
  58.                 break;   
  59.                 case 2:                    
  60.                     _df.sharpen();   
  61.                 break;   
  62.                 case 3:                    
  63.                     _df.color(0x0000FF);   
  64.                 break;   
  65.                 case 4:                    
  66.                     _df.brightness(100);   
  67.                 break;   
  68.                 case 5:                    
  69.                     _df.contrast(0.7);   
  70.                 break;   
  71.                 case 6:                    
  72.                     _df.saturation(2.5);   
  73.                 break;   
  74.                 case 7:                    
  75.                     _df.grayscale();   
  76.                 break;   
  77.                 case 8:                    
  78.                     _df.invert();   
  79.                 break;   
  80.             }   
  81.                
  82.             //copyright;   
  83.             var copyright:TextField = new TextField();   
  84.             copyright.autoSize = TextFieldAutoSize.LEFT;   
  85.             copyright.selectable = false;   
  86.             copyright.defaultTextFormat = new TextFormat("Verdana",9,0xFFFFFF,true,null,null,"http://www.klstudio.com","_blank");   
  87.             copyright.text = "POWERED BY KINGLONG";   
  88.             copyright.x = 655 - copyright.width - 5;   
  89.             copyright.y = 280 - copyright.height - 5;   
  90.             var filter:BitmapFilter = getBitmapFilter();   
  91.             copyright.filters = [filter];   
  92.             copyright.alpha = 0.8;   
  93.             addChild(copyright);   
  94.         }   
  95.            
  96.         private function changeEffectHandler(event:Event):void{   
  97.             _df.clear();   
  98.             switch(event.target.value){   
  99.                 case "emboss":                     
  100.                     _df.emboss();   
  101.                 break;   
  102.                 case "blur":                       
  103.                     _df.blur(10);   
  104.                 break;   
  105.                 case "sharpen":                    
  106.                     _df.sharpen();   
  107.                 break;   
  108.                 case "color":                      
  109.                     _df.color(0x0000FF);   
  110.                 break;   
  111.                 case "brightness":                     
  112.                     _df.brightness(100);   
  113.                 break;   
  114.                 case "contrast":                       
  115.                     _df.contrast(0.7);   
  116.                 break;   
  117.                 case "saturation":                     
  118.                     _df.saturation(2.5);   
  119.                 break;   
  120.                 case "grayscale":                      
  121.                     _df.grayscale();   
  122.                 break;   
  123.                 case "invert":                     
  124.                     _df.invert();   
  125.                 break;                 
  126.             }   
  127.         }   
  128.            
  129.         private function initVideo(cam:Camera):void{               
  130.             _src = new Video();    
  131.             _src.x = 5;   
  132.             _src.y = 5;   
  133.             addChild(_src);            
  134.                
  135.             _new = new Video();   
  136.             _new.x = 330;   
  137.             _new.y = 5;            
  138.             addChild(_new);   
  139.                
  140.             cam.setMode(320,240,24);   
  141.             cam.setQuality(10*1024*1024,100);   
  142.                
  143.             var video:Video = _src as Video;   
  144.             video.attachCamera(cam);   
  145.                
  146.             video = _new as Video;   
  147.             video.attachCamera(cam);   
  148.                
  149.             _df = new DisplayEffect(_new);     
  150.         }   
  151.            
  152.         private function initLoader():void{   
  153.             _src = new Loader();       
  154.             _src.x = 5;   
  155.             _src.y = 5;   
  156.             addChild(_src);            
  157.                
  158.             _new = new Loader();   
  159.             _new.x = 330;   
  160.             _new.y = 5;            
  161.             addChild(_new);   
  162.                
  163.             var loader:Loader = _src as Loader;   
  164.             loader.load(new URLRequest("/demo/test/anima.swf"));   
  165.                
  166.             loader = _new as Loader;   
  167.             loader.load(new URLRequest("/demo/test/anima.swf"));   
  168.                
  169.             _df = new DisplayEffect(_new);         
  170.         }   
  171.            
  172.         private function getBitmapFilter():BitmapFilter {   
  173.             var color:Number = 0x000000;   
  174.             var alpha:Number = 0.8;   
  175.             var blurX:Number = 2;   
  176.             var blurY:Number = 2;   
  177.             var strength:Number = 6;   
  178.             var inner:Boolean = false;   
  179.             var knockout:Boolean = false;   
  180.             var quality:Number = BitmapFilterQuality.HIGH;   
  181.             return new GlowFilter(color,   
  182.                                   alpha,   
  183.                                   blurX,   
  184.                                   blurY,   
  185.                                   strength,   
  186.                                   quality,   
  187.                                   inner,   
  188.                                   knockout);   
  189.         }   
  190.            
  191.         private function getRndNumber(min:uint,max:uint):uint{   
  192.             return int(Math.random() * (max+1))+min;   
  193.         }   
  194.     }      
  195. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值