一个酷眩的flash字体效果-BitmapData实例应用

本文介绍如何利用BitmapData类在Flash中创建位图,并通过文本转换为位图,进而实现动画效果。具体步骤包括文本的位图化、位图的存储与显示,以及基于位图数据的动画实现。
BitmapData实例应用(1)
暂时定个1吧~~~~~~~~~~~~~~有时间继续补上关于这方面的实例 .........
奉上原代码(将该类写成文档类测试):
package {
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
       
        public class BitMapDataTest extends Sprite
        {
                private var ball:Shape;
                private var myBitMapData:BitmapData;
                private var myBitmap:Bitmap;
                private var myText:TextField = new TextField;
                private var DotArray:Array = new Array();
                private var TxtFormat:TextFormat = new TextFormat;
                private var bnx:Number = 20;
                private var bny:Number = 20;
               
                public function BitMapDataTest()
                {
                        this.stage.align     = StageAlign.TOP_LEFT;
                this.stage.scaleMode = StageScaleMode.NO_SCALE;
                       
                        TxtFormat.size  = 40;
                        TxtFormat.color = 0x000000;
                        TxtFormat.letterSpacing = 4;
                       
                        myText.defaultTextFormat = TxtFormat;
                        myText.autoSize = TextFieldAutoSize.LEFT;
                        myText.text = "我是真的真的很喜欢FLASH";
                        myText.x = 20;
                        myText.y = 100;
                        this.addChild(myText);
                       
                        //将文本转成myBitMapData对象
                        myBitMapData = new BitmapData(myText.width,myText.height,false,0xcc6600);
                        myBitMapData.draw(myText);
                        //填加到Bitmap
                        myBitmap = new Bitmap(myBitMapData);
                        myBitmap.x = bnx;
                        myBitmap.y = bny;
                        //显示在舞台
                        //this.addChild(myBitmap);
                                               //(各位可以加上看下转换成位图后的效果);
                       
                        //将myBitMapData中有颜色的点坐标储存在数组中
                        for(var y:uint = 0;y getPixel(x,y) != 0xcc6600)
                                        {
                                                DotArray.push({x:x,y:y});
                                        }
                                }
                        }
                       
                        //根据数组复制点
                        for(var i:uint = 0;iTween = new Tween(ball, "x", Back.easeOut, ball.x, DotArray[i].x+100, speed, true);
                                //var ty:Tween = new Tween(ball, "y", Back.easeOut, ball.y, DotArray[i].y+400, speed, true);
                                ball.addEventListener(Event.ENTER_FRAME,fun);
                        }
                }
               
                //缓冲到指定的点坐标
                private function fun(e:Event):void
                {
                        //缓动公式
                        var speed:Number = Math.random()*10;
                        e.currentTarget.x += (DotArray[uint(e.currentTarget.name)].x+bnx - e.currentTarget.x)/speed;
                        e.currentTarget.y += (DotArray[uint(e.currentTarget.name)].y+bny - e.currentTarget.y)/speed;
                       
                        //删除侦听
                        if(e.currentTarget.x == DotArray[uint(e.currentTarget.name)].x+bnx &&
                                e.currentTarget.y == DotArray[uint(e.currentTarget.name)].y+bny)
                        {
                                e.currentTarget.removeEventListener(Event.ENTER_FRAME,fun);
                        }
                }
        }
}
package {
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Shape;
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.text.TextField;
        import flash.text.TextFieldAutoSize;
        import flash.text.TextFormat;
       
        public class BitMapDataTest extends Sprite
        {
                private var ball:Shape;
                private var myBitMapData:BitmapData;
                private var myBitmap:Bitmap;
                private var myText:TextField = new TextField;
                private var DotArray:Array = new Array();
                private var TxtFormat:TextFormat = new TextFormat;
                private var bnx:Number = 20;
                private var bny:Number = 20;
               
                public function BitMapDataTest()
                {
                        this.stage.align     = StageAlign.TOP_LEFT;
                this.stage.scaleMode = StageScaleMode.NO_SCALE;
                       
                        TxtFormat.size  = 40;
                        TxtFormat.color = 0x000000;
                        TxtFormat.letterSpacing = 4;
                       
                        myText.defaultTextFormat = TxtFormat;
                        myText.autoSize = TextFieldAutoSize.LEFT;
                        myText.text = "我是真的真的很喜欢FLASH";
                        myText.x = 20;
                        myText.y = 100;
                        this.addChild(myText);
                       
                        //将文本转成myBitMapData对象
                        myBitMapData = new BitmapData(myText.width,myText.height,false,0xcc6600);
                        myBitMapData.draw(myText);
                        //填加到Bitmap
                        myBitmap = new Bitmap(myBitMapData);
                        myBitmap.x = bnx;
                        myBitmap.y = bny;
                        //显示在舞台
                        //this.addChild(myBitmap);
                                               //(各位可以加上看下转换成位图后的效果);
                       
                        //将myBitMapData中有颜色的点坐标储存在数组中
                        for(var y:uint = 0;y getPixel(x,y) != 0xcc6600)
                                        {
                                                DotArray.push({x:x,y:y});
                                        }
                                }
                        }
                       
                        //根据数组复制点
                        for(var i:uint = 0;iTween = new Tween(ball, "x", Back.easeOut, ball.x, DotArray[i].x+100, speed, true);
                                //var ty:Tween = new Tween(ball, "y", Back.easeOut, ball.y, DotArray[i].y+400, speed, true);
                                ball.addEventListener(Event.ENTER_FRAME,fun);
                        }
                }
               
                //缓冲到指定的点坐标
                private function fun(e:Event):void
                {
                        //缓动公式
                        var speed:Number = Math.random()*10;
                        e.currentTarget.x += (DotArray[uint(e.currentTarget.name)].x+bnx - e.currentTarget.x)/speed;
                        e.currentTarget.y += (DotArray[uint(e.currentTarget.name)].y+bny - e.currentTarget.y)/speed;
                       
                        //删除侦听
                        if(e.currentTarget.x == DotArray[uint(e.currentTarget.name)].x+bnx &&
                                e.currentTarget.y == DotArray[uint(e.currentTarget.name)].y+bny)
                        {
                                e.currentTarget.removeEventListener(Event.ENTER_FRAME,fun);
                        }
                }
        }
}
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/3072.html
1,gxwz.fla 光线文字(33KB) 2,hrwz.zip 环绕旋转字(5KB) 3,kzfwz.zip 空中飞舞字(6KB) 4,sdwz.zip 闪电文字(6KB) 5,sjlz2.zip 数据流字(8KB) 6,twfz1.zip 天外飞字1(5KB) 7,twfz2.zip 天外飞字2(5KB) 8,fydwz.zip 发烟的文字(110KB) 9,szdwx.zip 水中的文字(5KB) 10,zzwz.zip 遮罩文字(4KB) 11,bdz.zip 飘动字(3KB) 12,ltz.zip 立体字(8KB) 13,jgz1.zip 激光字(7KB) 14,jgz1-2.zip 激光字2(7KB) 15,twfz3.zip 天外飞字3(4KB) 16,ycpz.zip 洋葱皮字(6KB) 17,fswz.zip 飞闪文字(17KB) 18,xzdwz.zip 旋转的文字(30KB) 19,bzz.zip 爆炸字(5KB) 20,cyz.zip 残影字(6KB) 21,dyz1.zip 叠影字(6KB) 22,fxz.zip 飞絮字(5KB) 23,fcz.zip 风吹字(4KB) 24,sbz.zip 水波字(6KB) 25,xwz.zip 旋涡字(5KB) 26,zgwz.zip 烛光文字(5KB) 27,3dgs.zip 3D跟随(9KB) 28,xxsb.zip 线性鼠标(5KB)<End. 29,scyw.zip 色彩烟雾(119KB) 30,bssb.zip 变色鼠标(5KB) 31,zzsb.zip 遮罩鼠标(4KB) 32,sbgs7.zip 文字跟随1(5KB) 33,wzgs.zip 文字跟随2(5KB) 34,kzgm.zip 控制光芒(6KB) 35,zlwz.zip 坠落文字(6KB) 36,shiny.zip 很cool的文字演示(109KB) 37,hekt.zip 又一款飞行文字,短小精悍,先看看吧;(5KB) 38,maskzoom.zip 一款流动的文字,做法简单,效果不错,值得推荐;(3KB) 39,wraptext.zip 转动文字 模拟文字围绕Y 轴作旋转,一个简单的动画;(3KB) 40,mech.zip 液晶文字 有点像是从液晶显示屏显示出来的文字效果,动感方面也做的不错;(9KB) 41,superholo.zip 3D文字 立体效果应该不是FLASH 做出来的,利用其他的软件把文体做好,然后再导入FLASH 里输出成动画;(103KB) 42,around.zip 旋转文字 一款文字围绕球体旋转,产生立体效果的动画;(4KB) 43,bigm.zip 摇摇字 其实是个3D立体字,背景文字的旋转效果很好看;(44KB) 44,wind.zip 风吹文字 文字随风而起,然后又落下,不要以为是SWISH 做的,看看源码就知道作者是花了不少心思的;(10KB) 45,emboss.zip 立体文字 教你怎么做一种立体文字的方法,源码内容是些简单的E 文;(4KB) 46,thematrix.zip 瀑布文字 一种简单,易做,效果又好的文字效果;用做背景相当不错;(10KB) 47,RotatingWords.zip 滚动文字 产生一种纵向的旋转效果,其实做法很简单,一看源码你就清楚啦;(4KB) 48,neontext.zip 霓虹文字效果;(3KB) 49,windblown.zip 风吹文字 类似SWISH 里面文字随风落下、随风飞起的效果,附带具体说明(不过是E文的);(12KB) 50,letters-Ehtesham.zip 立体字 旋转的立体文字,是利用其他软件制作好AI路径,然后导入FLASH中来完成动画;(50KB) 51,sparkletext.zip 速度文字 运用MASK 制作出来的一种运动文字效果,与瀑布文字有异曲同工之处;(24KB) 52,swirl.zip 扭曲 文字被强行扭曲180度的效果;(3KB) 53,textlights2.zip 大光灯文字 很棒的一种文字效果,文字被模拟成探照灯一样在夜空中扫来扫去,这款文字在晃动的过程中还会转换颜色;(5KB) 54,spheretext.zip 大光灯文字 很棒的一种文字效果,如同夜晚探照灯在夜空扫来扫去;(67KB) 55,shexian700-400-eff.zip 射线文字效果 文字出现的边缘有射线射出,很效果(8KB) 56,fei.zip 飞行文字 动画中使用ACTION来控制键盘输入的文字,使文字按两种预设的效果来生成动画;(6KB) 57,input.zip 文字输入 在FLASH 的键盘里输入文字,然后将其变成动画的内容;(20KB) 58,scroltext400-300-app.zip 滚动文字 就象是按下网鼠中间的滑轮,上下滚动网页一样的效果(5KB) 59,200142102101.zip 字体辉光效果这是一个比较(炫)的特殊效果,最早出现在 Ray Of Light 网站,现在您也可以试一下辉光的效果了!快快动手吧(8KB) 60,2000121902101.zip Flash 5 点阵汉字特效这是一个用点阵方式的汉字实现的一些效果的集合,如果您自己动手会制作出惊人的东西(16KB) 61,2000121802102.zip 激光字 一个老的效果:用激光来写字,关心特殊效果的朋友一定要看看(6KB)
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值