flash与游戏笔记 滚动数字

博客探讨在游戏开发中如何使用位图文字增强美观性,通过实验展示了利用tweenlite的endArray刷新位图实现数字滚动效果。基础类为bitmap,通过复制像素值实现数字滚动。实验步骤包括平均裁剪数字素材并在Flash CC中预览。此外,提到了CSDN图片上传的水印问题,并分享了人工智能教程链接。
摘要由CSDN通过智能技术生成
               

       

 

         游戏里面需要用到很多的位图文字,以增加美观。最近也尝试做了一个简单的实验版本,其中一种思路是采取tweenlite的 endArray 来刷新位图的做法来尝试滚动一下数字。

使用的基础类是bitmap,最简单直接的办法就是copy像素值了。

下面是一个比较简单的实验,可以尝试玩玩这种简单的效果。

 

packageimport flash.display.Sprite; import com.greensock.TweenLite; import com.greensock.plugins.TweenPlugin;  import com.greensock.plugins.EndArrayPlugin;  import flash.events.MouseEvent;   public class Main extends Sprite {  private var rollText:RollTextField;  public function Main()  {      TweenPlugin.activate([EndArrayPlugin]);   rollText=new RollTextField();   addChild(rollText);   rollText.x=200;   rollText.y=200;   rollText.init(new nums(0,0),10);   stage.addEventListener(MouseEvent.CLICK,onClick);     }    private function onClick(event:MouseEvent):void  {      rollText.text=Math.random()*5000;     }     }  }

 实验的素材我们随意准备一下数字,制作素材的时候需要进行平均的分成,以便裁剪的时候每一个数字都可以得到平均一点。

 

 

制作完成后,我们在flash cc预览一下,其中我们随意准备一张数字素材进行裁剪预览。


 

packageimport flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.geom.Point; import flash.geom.Rectangle; import flash.text.TextField;    import com.greensock.TweenLite;   public class RollTextField extends Bitmap {  private var source:BitmapData;  private var w:int;  private var h:int;  private var rect:Rectangle;  private var pt:Point;  private var copyImg:BitmapData;  private var curValue:int = 0;  private var offX:int = 0;  public var endFun:Function;  public function RollTextField()  {     }  public function init(source:BitmapData,len:int,offX:int=0):void  {   this.source = source;   this.offX = offX;   w = source.width / len;   h = source.height;  }  public function set text(value:int):void  {   if (! source || value == curValue)   {    return;   }   var myArray:Array = [curValue];   this.curValue = value;   if (! rect)   {    rect = new Rectangle(0,0,w,h);   }   if (! pt)   {    pt=new Point();   }   TweenLite.to(myArray, 1, {endArray:[value],onUpdate:onUpdateView,onComplete:onComplete});   function onUpdateView():void   {    var myNewStr:String = String(int(myArray[0]));    var len:int = myNewStr.length;    if (copyImg)    {     copyImg.dispose();     copyImg = null;    }    copyImg =new BitmapData(len*w,h,true,0x0);    for (var i:int=0; i<len; i++)    {     var num:int = int(myNewStr.charAt(i)) + offX;     rect.x = num * w;     rect.y = 0;     rect.width = w;     rect.height = h;     pt.x = i * w;     pt.y = 0;     copyImg.copyPixels(source,rect,pt);    }    bitmapData = copyImg;   }   function onComplete():void   {    if (endFun!=null)    {     endFun.apply(null,null);    }   }  } }}


 

 注意:最近csdn图片上传都出现了水印,真想吐槽一番这样的无聊设定。

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值