lufylegend:动画

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>
上一篇:ServletConfig与ServletContext对象(接口)


下一篇:sql条件中比较性能优化