加载单个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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于加载单个png图片进行动作化处理的所有评论