[AS2]文本点阵化| Suerry's blog
Posted on 十二月 29th, 2009 by suerry in |

    Hey!好久没来写东西了。今天来写一篇as2的文本点阵化。

   关于文本点阵化,用到的是as2里内置的BitmapData类。思路是通过逐一取得文本中像素的点,记录下坐标值,然后动态添加圆点至舞台上,赋于他们数组里的坐标值。

   我们先看看一个demo:

   

下面来讲一下制作过程:

新建一个flash,添加一个新的mc,链接名称为"mc",再添加一个mc,绘制6*6的圆点,连接名称为"yuan"。在舞台(0,0)处添加一个动态文本,名称为txt.

  代码:

function wenben(neirong:String){

import flash.display.BitmapData;  //导入BitmapData类.
 txt.text=neirong;  //获取文本内容
    txt._visible=false;  //设置它不可见
    txt.autoSize=true;   //设置它左边自动对齐
    var bm:BitmapData = new BitmapData(200,100, false, 0xffffff);   //新建一个BitmapData数据。具体数据请F1查看~~
    bm.draw(txt);//BitmapData绘制这个TXT
 
 var beishu=10;//设定要放大的倍数

//定义一个数组,通过逐一取点的方式取得文本里的像素值坐标值。乘以放大倍数后存入数组。
 var Zuobiao:Array = new Array();
 for (y=0; y<txt._height; y++) {
    for (x=0; x<txt._width; x++) {
  if (bm.getPixel(x, y) != 0xffffff) {
   Zuobiao.push({x:x*beishu, y:y*beishu});
     }
 }
}
 //============根据数组复制"点"===============
this.attachMovie("mc","mc",this.getNextHighestDepth(), {_x:0, _y:0});
for (var i = 0; i<Zuobiao.length; i++) {
 var p = mc.attachMovie("yuan", "yuan"+i, i);
 p.cacheAsBitmap = true;
 p._x=Zuobiao[i].x;
 p._y=Zuobiao[i].y;
}
}

 wenben("suerry")

好了,有了这个思路后,再完善它就很容易了,我现在要让整体动画看起来更加动态。我将使用TweenLite类进行缓动。TweenLite的功能非常强强大,我现在只是用到了坐标的缓动。

function wenben(neirong:String){

import flash.display.BitmapData;  //导入BitmapData类.

import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
TweenPlugin.activate([TintPlugin]);

 txt.text=neirong;  //获取文本内容
    txt._visible=false;  //设置它不可见
    txt.autoSize=true;   //设置它左边自动对齐
    var bm:BitmapData = new BitmapData(200,100, false, 0xffffff);   //新建一个BitmapData数据。具体数据请F1查看~~
    bm.draw(txt);//BitmapData绘制这个TXT
 
 var beishu=10;//设定要放大的倍数

//定义一个数组,通过逐一取点的方式取得文本里的像素值坐标值。乘以放大倍数后存入数组。
 var Zuobiao:Array = new Array();
 for (y=0; y<txt._height; y++) {
    for (x=0; x<txt._width; x++) {
  if (bm.getPixel(x, y) != 0xffffff) {
   Zuobiao.push({x:x*beishu, y:y*beishu});
     }
 }
}
 //============根据数组复制"点"===============
this.attachMovie("mc","mc",this.getNextHighestDepth(), {_x:0, _y:0});
for (var i = 0; i<Zuobiao.length; i++) {
 var p = mc.attachMovie("yuan", "yuan"+i, i);
 p.cacheAsBitmap = true;
 p._x = Math.random()*Stage.width-Math.random()*Stage.width
 p._y = Math.random()*Stage.height-Math.random()*Stage.height

 p.tox=Zuobiao[i].x;
 p.toy=Zuobiao[i].y;

var speed = Math.random()*5
p._alpha=0

//利用Tween类,让每个"点"移动到他们的终点坐标
var myTween=TweenMax.to(p, speed, {_alpha:100,_x:p.tox,_y:p.toy,ease:Back.easeInOut});

}
}

 wenben("suerry")

郑重声明:资讯 【[AS2]文本点阵化| Suerry's blog】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——