博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ActionScript 3.0] 创建倒影
阅读量:4986 次
发布时间:2019-06-12

本文共 2697 字,大约阅读时间需要 8 分钟。

1 package  2 { 3     import flash.display.Bitmap; 4     import flash.display.BitmapData; 5     import flash.display.DisplayObject; 6     import flash.display.GradientType; 7     import flash.display.Loader; 8     import flash.display.Shape; 9     import flash.display.Sprite;10     import flash.events.Event;11     import flash.geom.Matrix;12     import flash.geom.Point;13     import flash.net.URLRequest;14 15     /**16       * ...17       * @author Frost.Yen18       */19     [SWF(width=800, height=1000, backgroundColor=0x000000, frameRate=30)]20     public class Reflection extends Sprite21     {22         private var ldr:Loader=new Loader();23         private var pic:Sprite=new Sprite();24         public function Reflection()25         {26             ldr.load(new URLRequest("http://hiphotos.baidu.com/frostyen/pic/item/7e49d8b53f6b48ffd9335aa2.jpg"));27             ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);28         }29 30         private function onImageLoaded(e:Event):void31         {32             this.addChild(pic);33             pic.addChild(ldr);34             pic.x = 200;35             pic.y = 10;36             ldr.scaleX = ldr.scaleY = .5;37             createRef(pic,5,0);38         }39         /**40            *41            * @param obj  需创建倒影的对象42            * @param distance  对象与倒影的距离43            * @param offset  倒影的偏移量44            */45         private function createRef(obj:DisplayObject,distance:Number=5,offset:Number=0):void46         {47             // 倒置48             var bd:BitmapData = new BitmapData(obj.width,obj.height,true);49             var mtx:Matrix = new Matrix();50             mtx.d = -1;51             mtx.ty = bd.height;52             bd.draw(obj, mtx);53 54             // 添加倒影渐变55             var _width:int = bd.width;56             var _height:int = bd.height;57 58             mtx.createGradientBox(_width, _height, 0.5 * Math.PI,0,offset );59             var shape:Shape = new Shape();60             shape.graphics.beginGradientFill(GradientType.LINEAR, [0,0,0], [0.6,0.1, 0], [0,200, 255], mtx);61             shape.graphics.drawRect(0, 0, _width, _height);62             shape.graphics.endFill();63             var mask_bd:BitmapData = new BitmapData(_width,_height,true,0);64             mask_bd.draw(shape);65             // 生成最终效果66             bd.copyPixels(bd, bd.rect, new Point(0, 0), mask_bd, new Point(0, 0), false);67             // 将倒影放置于对象下方68             var ref:Bitmap = new Bitmap(bd);69             ref.y = obj.height + obj.y + distance;70             ref.x = obj.x;71             obj.parent.addChild(ref);72         }73     }74 75 }

 

转载于:https://www.cnblogs.com/frost-yen/p/4589282.html

你可能感兴趣的文章
FZU 1919 -- K-way Merging sort(记忆化搜索)
查看>>
Ubuntu 下常用快捷键
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Git分支管理
查看>>
位运算
查看>>
SQL Server-删除表中重复的记录!
查看>>
Ubuntu Code::Blocks IDE 13.12 汉化
查看>>
Linux vim 常用命令
查看>>
document.write与document.getelementById(),output的作用对象区别
查看>>
大学生程序设计邀请赛(华东师范大学)B. 分词 DP
查看>>
IBM MQ常用命令
查看>>
RedHat 无法使用YUM源问题
查看>>
实战重构工厂模式
查看>>
Flask的上下文管理:Werkzeug库的local模块
查看>>
Python学习之路-5 (元祖数据类型)
查看>>
转:ASP.NET MVC HtmlHelper用法大全
查看>>
课后作业-阅读任务-阅读提问-4
查看>>
基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
查看>>
手动博客重定向 https://www.cnblogs.com/kelthuzadx/
查看>>
测试一下哈哈哈哈
查看>>