一个酷眩的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