1.动画1
<script type="text/javascript"> var loader,anime,layer; //初始化画布 init(200, "mylegend", 500, 350, main); //初始化回调函数 function main() { //加载图片资源 loader = new LLoader(); loader.addEventListener(LEvent.COMPLETE,loadBitmapdata); loader.load("chara.png","bitmapData"); } //图片加载完成后回调函数 function loadBitmapdata(event) { //LBitmapData用于进一步构造一个Bitmap对象 //LBitmapData四个构造参数含义:图像资源,从原图中开始截取的原点坐标(x,y),截取的宽度和高度 var bitmapdata = new LBitmapData(loader.content, 0, 0, 64, 64); ////将原图分割为动画帧,此对象封装了分割方式,将原图分割成4*4 var list = LGlobal.divideCoordinate(256,256,4,4); //加入层LSprite layer = new LSprite(); addChild(layer); //得到一个animate对象,参数:层,bitmapData,分割方式 anime = new LAnimation(layer, bitmapdata, list); //循环动画 layer.addEventListener(LEvent.ENTER_FRAME,onframe); } //此函数会被反复调用 //以帧速率调度此事件。 function onframe(){ anime.onframe(); } </script>
2.动画2
<script type="text/javascript"> var loader,anime,layer; init(200,"mylegend",500,350,main); function main(){ loader = new LLoader(); loader.addEventListener(LEvent.COMPLETE,loadBitmapdata); loader.load("chara.png","bitmapData"); } function loadBitmapdata(event){ var bitmapdata = new LBitmapData(loader.content,0,0,64,64); var list = LGlobal.divideCoordinate(256,256,4,4); //加入层LSprite layer = new LSprite(); addChild(layer); //动画操作一般有这几种:1,设置动画 2,获取动画信息 3,添加动画监听事件 4,播放动画 anime = new LAnimation(layer, bitmapdata, list); layer.addEventListener(LEvent.ENTER_FRAME,onframe); } function onframe() { //getAction方法,获取动画信息 var action = anime.getAction(); switch(action[0]){ case 0: //人物下行 layer.y += 5; if (layer.y >= 200) { //setAction方法,设置动画 anime.setAction(2); } break; case 1: //人物左行 layer.x -= 5; if(layer.x <= 0){ anime.setAction(0); } break; case 2: //人物右行 layer.x += 5; if(layer.x >= 200){ anime.setAction(3); } break; case 3: //人物上行 layer.y -= 5; if(layer.y <= 0){ anime.setAction(1); } break; } //onframe方法,播放动画 anime.onframe(); } </script>
时间: 2024-11-24 16:02:32