飘飘悠悠 发表于 2015-1-15 20:34:44

给大家带来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动画制作软件制作的动画文件很小,这样便于在互联网上传输,而且它采用了流技术,只要下载一部分,就能欣赏动画,而且能一边播放一边传输送数据。

小妖女 发表于 2015-1-16 15:45:25

给大家带来Flash技能教程:as3把2D图片剖析成文本文本功能-Flash actionscript

RichMedia并不是一种具体的互联网媒体形式,而是指具有动画、声音、视频和/或交互性的信息传播方法。 

精灵巫婆 发表于 2015-1-18 18:24:19

一个物体从一个角(关键祯1)移动到另一个角(关键祯2)。然后tweening在关键祯之间填充祯,从而使物体可以在屏幕上优雅地运动。

爱飞 发表于 2015-1-27 16:22:26

Flash是一种以向量图方式制成的网页动画,相比MPEG,AVI等的影片的档案大小就小很多.

变相怪杰 发表于 2015-2-5 14:32:12

矢量图形有一些固有的限制。例如,照片由于包含太多的信息而不能使用矢量图形这 种形式。但是对于由实体颜色形状构成的图像,Flash很管用。

谁可相欹 发表于 2015-2-12 07:06:08

flash的优缺点可以如何运用呢?

分手快乐 发表于 2015-3-3 01:21:36

关于位图和矢量图形的区别,可参看Flash教程。

深爱那片海 发表于 2015-3-11 08:56:45

向量图有一个特点,就是放大后的图像是不会改变的. 点阵图 向量图Flash的应用,还有再不断在完善的Action Script脚本语言。

愤怒的大鸟 发表于 2015-3-18 09:11:11

FLASH广告的问题主要表现在:

山那边是海 发表于 2015-3-25 22:15:29

动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
页: [1]
查看完整版本: 给大家带来Flash技能教程:as3把2D图片剖析成文本文本功效-Flash actionscript