快速业务通道

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

分享到: 更多

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号