注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

清风的博客

我为人人,人人为我。

 
 
 

日志

 
 

用一张图片中的八个动作做动画  

2014-04-07 22:28:49|  分类: 【flash教程】 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

用一张图片中的八个动作做动画的方法:今天在记忆中的脚本的百度空间里看到一个有趣的效果:在一张PNG格式的透明图片上有一个人在走路时截取的八个动作,呈一字排开。然后通过代码截取其中的每个画面,再通过帧频事件依次在同一个位置呈现这八幅画面,就得到了连续的走路动画。

帧/类代码。导入图片到库中,链接名为:Pic。代码如下:

var w:Number=80,h:Number=91;//图片宽高
var count:int=8;//截图次数
var bmdArr:Array=[];//放位图数据的数组
var bitmap:Bitmap=new Bitmap();//位图实例,就是走路动画的显示对象
var pic:Pic=new Pic(0,0);//库中的图的位图数据实例,就是“原材料”

for (var i:int=0; i<count; i++) {
 var bmd:BitmapData=new BitmapData(w,h,true,0×00000000);
 //一个位图数据实例,其宽高同最终效果的宽高
 var mx:Matrix=new Matrix();//矩阵对象
 mx.tx=-i*w;//设置矩阵的横向起点,即平移点的横坐标
 bmd.draw(pic,mx,null,null,new Rectangle(0,0,w,h));
 //按照矩阵设置的位置,及后面指定的矩形的大小对pic图片进行截取
 bmdArr.push(bmd);//把截取结果的位图数据放入数组中
}

addChild(bitmap);
bitmap.x=275-w/2;
bitmap.y=200-h/2;//设置位图的坐标

addEventListener(Event.ENTER_FRAME,frame);
function frame(e) {
 bmdArr.push(bmdArr.shift());
 //每次取出数组中第一个元素放到最后,元素总个数不变,
 bitmap.bitmapData=bmdArr[0];//实现位图循环出现
}

最终效果如下:

  评论这张
 
阅读(100)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017