给大家带来Flash技能教程:as3把2D图片剖析成文本文本功能-Flash actionscript
ActionScript是一种程序语言的简单文本文件.FLA档案能够直接包含ActionScript。poluoluo中心提醒:一篇在游戏开辟中经常使用到的功效就是使用as3把2D图片剖析成文本文本功效,上面我们来看看详细的操纵历程与as完成代码吧。
一篇在游戏开辟中经常使用到的功效就是使用as3把2D图片剖析成文本文本功效,上面我们来看看详细的操纵历程与as完成代码吧。
关于一个像素的恣意点,能够失掉他的灰度。灰度盘算公式
[*]getR(color)*0.299+getG(color)*0.587+getB(color)*0.114;
而每个笔墨也有其对应的明暗,好比实心的一个球,就要比空心的显得更暗,由于它加倍的严密,求笔墨明暗的办法
privatefunctiongetDensity(t:String):Number{
varttf:TextField=newTextField;
ttf.autoSize=TextFieldAutoSize.LEFT;
ttf.text=t;
varbmd:BitmapData=newBitmapData(ttf.width,ttf.height,false,0xffffff);
bmd.draw(ttf);
varc:int=0;
for(varx:int=0;x<bmd.width;x++){
for(vary:int=0;y<bmd.height;y++){
if(bmd.getPixel(x,y)!=0xffffff){
c++;
}
}
}
returnc/ttf.width/ttf.height;
}
完全代码
package
{
importflash.display.Bitmap;
importflash.display.BitmapData;
importflash.display.Loader;
importflash.display.Sprite;
importflash.events.Event;
importflash.geom.Rectangle;
importflash.net.FileReference;
importflash.text.TextField;
importflash.text.TextFieldAutoSize;
importflash.text.TextFormat;
importsliz.miniui.Button;
importsliz.utils.UIUtils;
/**
*...
*@authorlizhi
*/
publicclassTestTextextendsSprite
{
privatevarfonts:Array=[];
privatevartf:TextField;
privatevarfile:FileReference;
privatevarloader:Loader;
publicfunctionTestText()
{
tf=newTextField;
vartfm:TextFormat=newTextFormat;
tfm.size=10;
tfm.leading=-2;
tf.defaultTextFormat=tfm;
tf.autoSize=TextFieldAutoSize.LEFT;
vartext:String="";
varmin:int=32;
varmax:int=120;
while(++min<max){
varc:String=String.fromCharCode(min);
text+=c;
}
text+="."*#@%+-)(TiI?><~";
for(vari:int=0;i<text.length;i++){
c=text.charAt(i);
fonts.push({d:getDensity(c),t:c});
}
fonts.sortOn("d",Array.NUMERIC|Array.DESCENDING);
//varic:Class;
//varbmd:BitmapData=(newicasBitmap).bitmapData;
//render(bmd);
addChild(tf);
UIUtils.changeStage(stage);
varexplorer:Button=newButton("explorerimage",2,20,this,browse);
loader=newLoader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoad2);
}
privatefunctionrender(bmd:BitmapData):void{
tf.width=1000;
tf.height=1000;
varx:int=0;
vary:int=0;
tf.text="";
while(y<bmd.height){
while(x<bmd.width){
vargray:Number=getGray(bmd.getPixel(x,y))/0xff;
varindex:int=int((fonts.length-1)*gray);
tf.appendText(fonts.t);
varr:Rectangle=tf.getCharBoundaries(tf.text.length-1);
x+=r.width;
}
tf.appendText("n");
y=r.bottom
x=0;
}
}
privatefunctiongetDensity(t:String):Number{
varttf:TextField=newTextField;
ttf.autoSize=TextFieldAutoSize.LEFT;
ttf.text=t;
varbmd:BitmapData=newBitmapData(ttf.width,ttf.height,false,0xffffff);
bmd.draw(ttf);
varc:int=0;
for(varx:int=0;x<bmd.width;x++){
for(vary:int=0;y<bmd.height;y++){
if(bmd.getPixel(x,y)!=0xffffff){
c++;
}
}
}
returnc/ttf.width/ttf.height;
}
privatefunctiongetR(color:uint):uint{
returncolor<<8>>>24;
}
privatefunctiongetG(color:uint):uint{
returncolor<<16>>>24;
}
privatefunctiongetB(color:uint):uint{
returncolor<<24>>>24;
}
privatefunctiongetGray(color:uint):uint{
returngetR(color)*0.299+getG(color)*0.587+getB(color)*0.114;
}
privatefunctionbrowse(e:Event):void{
file=newFileReference();
file.browse();
file.addEventListener(Event.SELECT,onSelect);
}
privatefunctiononSelect(e:Event):void{
file.load();
file.addEventListener(Event.COMPLETE,onLoad);
}
privatefunctiononLoad(e:Event):void{
loader.loadBytes(file.data);
}
privatefunctiononLoad2(e:Event):void{
varcontent:Bitmap=loader.contentLoaderInfo.contentasBitmap;
render(content.bitmapData);
}
}
}
用flash动画制作软件制作的动画文件很小,这样便于在互联网上传输,而且它采用了流技术,只要下载一部分,就能欣赏动画,而且能一边播放一边传输送数据。
给大家带来Flash技能教程:as3把2D图片剖析成文本文本功能-Flash actionscript
RichMedia并不是一种具体的互联网媒体形式,而是指具有动画、声音、视频和/或交互性的信息传播方法。 一个物体从一个角(关键祯1)移动到另一个角(关键祯2)。然后tweening在关键祯之间填充祯,从而使物体可以在屏幕上优雅地运动。 Flash是一种以向量图方式制成的网页动画,相比MPEG,AVI等的影片的档案大小就小很多. 矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。 flash的优缺点可以如何运用呢? 关于位图和矢量图形的区别,可参看Flash教程。 向量图有一个特点,就是放大后的图像是不会改变的. 点阵图 向量图Flash的应用,还有再不断在完善的Action Script脚本语言。 FLASH广告的问题主要表现在: 动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
页:
[1]