快速业务通道

加载单个png图片进行动作化处理

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-07
ove.com

*@authorsmallerbird09-8-1914:23

*

*/

publicclassPngMovie

{

privatevarcurrentFrame:uint=0

privatevararrBmap:Array=newArray();

privatevararrBmapAll:Array=newArray();

publicvarw:Number,h:Number

/**

*

*@parambd_img生成动画的BitmapData对象

*@paramrow该图象显示动画是几行uint

*@paramtier该图象显示动画是几列uint

*@paramarr将该图象中的动画划分几个部份.Array如:如果该图像是一个2*3的

动画。

*       该参数设置为[2,3]意思为:分为两组动画:第1行第1列到第

2列 以及第1行第3列到第2行第3列

*源码下载地址:http://www.mygamemylove.com/bbs/viewthread.php?tid=35

*

*/

publicfunctionPngMovie(bd_img:BitmapData,row:uint,tier:uint,arr:Array)

{

currentFrame=0

w=bd_img.width/tier

h=bd_img.height/row

//

vararrTemBmap:Array=newArray();

vararrI:uint=0

varij:uint=1

for(vari:uint=0;i<row;i++)

{

for(varj:uint=0;j<tier;j++)

{

varbd:BitmapData=newBitmapData(w,h)

varrect:Rectangle=newRectangle(j*w,i*h,w,

h);

bd.copyPixels(bd_img,rect,newPoint(0,0));

arrTemBmap.push(bd)

if(++ij>arr[arrI])

{

ij=1

arrI++

arrBmapAll.push(arrTemBmap);

arrTemBmap=newArray();

}

}

}

//

setCurrentMovie()

}

//

/**

*

*@paramarrI当前显示的动画是第几组动画。注意:第一组动画是用0表示的。

*

*

*/

publicfunctionsetCurrentMovie(arrI:uint=0):void{

arrBmap=arrBmapAll[arrI]

currentFrame=0

}

//

/**

*

*

*@return当前播放的动画的当前帧的BitmapData

*

*/

publicfunctionnextFrame():BitmapData

{

varbd:BitmapData=arrBmap[currentFrame];

if(currentFrame+1<arrBmap.length)

{

currentFrame++

}

else

{

currentFrame=0

}

returnbd;

}

}

} packagecom.mygamemylove{

importflash.display.DisplayObject;

importflash.display.BitmapData;

importflash.geom.Point;

importflash.display.BlendMode;

/**

*flash原创代码尽在www.mygamemylove.com

*@authorsmallerbird09-8-1914:23

*源码下载地址:http://www.mygamemylove.com/bbs/viewthread.php?tid=35

*/

publicclassPngResource{

/**

*

*@paramimage

*@return获得一个不透明的bitmap

*

*/

publicstaticfunctioncreateBitmapData(image:DisplayObject):BitmapData{

varbitmap:BitmapData=newBitmapData(image.width,image.height);

bitmap.draw(image);

returnbitmap;

}

/**

*

*@paramimage

*@return获得图像的透明部份bitmap

*

*/

publicstaticfunctioncreateAlphaBitmapData

(image:DisplayObject):BitmapData{

varbitmap:BitmapData=newBitmapData(image.width,image.height);

bitmap.draw(image,null,null,BlendMode.ALPHA);

returnbitmap;

}

//

/**

*

*@paramimage

*@return获得一个透明的bitmap

*

*/

publicstaticfunctiongetAlphaImg(image:DisplayObject):BitmapData{

varbitmap:BitmapData=PngResource.createBitmapData(image);

varbitmapAlpha:BitmapData=PngResource.createAlphaBitmapData

(image);

vardb:BitmapData=newBitmapData

(bitmap.rect.width,bitmap.rect.height,true,0x000000);

//

db.copyPixels(bitmap,bitmap.rect,newPoint(0,0),bitmapAlpha,new

Point(0,0),true);

returndb;

}

}

} 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号