加载单个png图片进行动作化处理
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
效果: 有了这个代码整理,开发Flash游戏,可以像其它语言写游戏哪些编写游戏,摆脱时间轴的束缚。还可以很方便用一些游戏素材。这里边有两个文件夹: load_pngAlpha 加载一透明png,生成透明png动画。 flash_pngAlpha 将透明png放在flash库中,生成透明png动画。 这个功能是通过两个类来实现的。 PngResource.as 用于将透明png图像生成透明的BitmapData,主要用于加载png图像,或者通过flex的Embed引入。 PngMovie.as.as 将生成透明的BitmapData,分块成一组一组的动画。具体见实例代码: package{ importflash.display.Loader; importflash.display.Sprite; importflash.events.*; importflash.net.URLRequest; importflash.display.SimpleButton; importcom.mygamemylove.*; //源码下载地址:http://www.mygamemylove.com/bbs/viewthread.PHP?tid=35 [SWF(backgroundColor="0x006699")] publicclassloadPngextendsSprite { //加载图片 publicvarload:Loader //分解图片后不动动作的BitmapData publicvarplayer:PngMovie; //显示人物 publicvarsp_player:Sprite; //是否加载成功 publicvarisLoad:Boolean=false //动画播放的速度 publicvarfps:uint=0 publicvarfpsI:uint=0 publicfunctionloadPng() { fps=2 //加载png图片 load=newLoader(); load.contentLoaderInfo.addEventListener (Event.COMPLETE,fun_complete); load.load(newURLRequest("npc_pet17.png")); //显示动画容器 sp_player=newSprite(); sp_player.x=50 this.addChild(sp_player); // this.addEventListener(Event.ENTER_FRAME,fun_onEnterFrame) // btn1.addEventListener(MouseEvent.CLICK,btn_click); btn2.addEventListener(MouseEvent.CLICK,btn_click); btn3.addEventListener(MouseEvent.CLICK,btn_click); btn4.addEventListener(MouseEvent.CLICK,btn_click); btn5.addEventListener(MouseEvent.CLICK,btn_click); btn6.addEventListener(MouseEvent.CLICK,btn_click); btn7.addEventListener(MouseEvent.CLICK,btn_click); btn8.addEventListener(MouseEvent.CLICK,btn_click); } //加载完成 publicfunctionfun_complete(e:Event):void{ //此参数:[1,3,1,3,1,3,1,3]将加的图片分8组动画。依次为:1行1列,1 行2列到1行4列 player=newPngMovie(PngResource.getAlphaImg(load),4,4, [1,3,1,3,1,3,1,3]); //显示第二组动画 player.setCurrentMovie(1); isLoad=true } //循环动画 publicfunctionfun_onEnterFrame(e:Event):void{ //动画播放的速度 if(fpsI++>fps){ fpsI=0 //如果加载成功,显示动画 if(isLoad){ sp_player.graphics.clear(); sp_player.graphics.beginBitmapFill (player.nextFrame(),null,false,true); sp_player.graphics.drawRect(0,0,player.w,player.h); sp_player.graphics.endFill(); } } // } // publicfunctionbtn_click(e:MouseEvent):void{ switch(e.target){ casebtn1: player.setCurrentMovie(0); break; casebtn2: player.setCurrentMovie(1); break; casebtn3: player.setCurrentMovie(2); break; casebtn4: player.setCurrentMovie(3); break; casebtn5: player.setCurrentMovie(4); break; casebtn6: player.setCurrentMovie(5); break; casebtn7: player.setCurrentMovie(6); break; casebtn8: player.setCurrentMovie(7); break; } } } } packagecom.mygamemylove { importflash.display.BitmapData; importflash.geom.Point; importflash.geom.Rectangle; /** *flash原创代码尽在www.mygamemyl |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于加载单个png图片进行动作化处理的所有评论