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


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

你可能感兴趣的:(Flash)