zoukankan      html  css  js  c++  java
  • flash as3弹性放大镜效果

    function Yuan(r:Number ,ang:Number):Sprite {   
             var s:Sprite=new Sprite();//容器画板   
             var m:Matrix=new Matrix();   
             m.createGradientBox(2*r,2*r,ang);//矩阵填充盒   
             s.graphics.beginGradientFill(GradientType.LINEAR,[0xff0000,0x000000], [1,1],[0,255],m);   
             s.graphics.drawCircle(r,r,r);   
             s.graphics.endFill();   
             return s;   
    }   
    //创建2个半径为80圆   
    var spx:Sprite=Yuan(80,0);   
    var spy:Sprite=Yuan(80,Math.PI/2);//线性填充色偏移90   
    var ss:Number=2;//2的ss次幂   
    var i:Number=0;   
    //创建2个透明位图,大小为圆1圆2等同   
    var spbtx:BitmapData=new BitmapData(spx.width,spx.height,true,0);   
    var spbty:BitmapData=new BitmapData(spy.width,spy.height,true,0);
    //为拷贝颜色通道的源位图数据   
    spbtx.draw(spx);//位图1拍照圆1,   
    spbty.draw(spy);//位图2拍照圆2,   
    //位图数据1拷贝以位图2为源图像的颜色通道值,源红目标蓝(1,4)   
    spbtx.copyChannel(spbty,spbty.rect,new Point(),BitmapDataChannel.RED, BitmapDataChannel.BLUE);   
    var spbtxm:Bitmap=addChild(new Bitmap(spbtx)) as Bitmap;
    //将位图数据1保存到位图显示对象中   
    //创建用于添加滤镜的位图数据spb   
    var spb:BitmapData=new BitmapData(spx.width+60,spx.height+60,true,0);   
    spb.applyFilter(spbtx,spbtx.rect,new Point(30,30),new BlurFilter(30,30));
    //添加了模糊滤镜的图形   
    var S:BitmapData=new BitmapData(spx.width+60,spx.height+60,false,0x808080);   
    S.draw(spb);   
    spb.dispose();//释放内存中的位图数据对象   
    spbtx.dispose();   
    spbty.dispose();   
    mc.addEventListener(Event.ENTER_FRAME,onMove);   
    var p:Point=new Point();//目标图左上角与置换图左上角的偏移量   
    function onMove(e:Event):void {   
             p.x+=(mouseX-spx.width/2-p.x)/5;
    //鼠标位置减置换图目标位置的差值,使置换的偏移量为缓动效果   
             p.y+=(mouseY-spx.height/2-p.y)/5;   
             var MaxNum:Number=50 * Math.cos(i / 2)*(Math.pow (2,ss));
     //置换强度,2的ss次幂,置换强度是动态的,因此产生弹性跳动   
             var filter:DisplacementMapFilter=new DisplacementMapFilter(S,p,1,4,MaxNum,MaxNum, DisplacementMapFilterMode.IGNORE);   
             mc.filters=[filter];   
             (i++>100)?i=0:0;//i大于100后让cos的角度为0,圆的边缘置换的强度渐渐减弱   
             (ss+=0.5>30)?ss=0:0;//弧度值乘的系数也为0   
  • 相关阅读:
    2 安装部署flume
    1 flume快速入门——十分钟学会flume
    3、剑指offer-数组——数组中重复的数字
    3.kafka安装配置
    2、剑指offer-字符串——替换空格
    1、剑指offer-数组——二维数组中的查找
    JVM虚拟机垃圾回收(GC)算法及优缺点
    Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
    LeetCode 617. 合并二叉树 Java
    Linux命令大全
  • 原文地址:https://www.cnblogs.com/top5/p/2337408.html
Copyright © 2011-2022 走看看