1.图层显示
LSprite:作为帧图层,内部可包含图片、图层等内容
2.图片切割显示
var bitmap = new LBitmapData(result["player"],0,0,106,77);
var bm = new LBitmap(bitmap);
LBitmapData:参数为图片内容,左上角横坐标,左上角纵坐标,右下角横坐标,右下角纵坐标
LBitmap:可以转化为图片
3.图片坐标切割
LGlobal.divideCoordinate(1272,77,1,12)
宽度、高度,纵向划分,横向划分
将一个大小按等分切分成对应的小图
4.增加侦频计时器
baseLayer.addEventListener(LEvent.ENTER_FRAME,onframe);
5.继承
base(this,Character,[list,speed]);
将某个对象继承另一个对象,[list,speed]作为父类的初始化参数
6.调父类方法
self.callParent("setAction",arguments);
调用父类的某方法
7.动画效果
self.anime = new LAnimation(self,new LBitmapData(imgData,0,0,106,77),list);
self.addEventListener(LEvent.ENTER_FRAME,function(){
self.anime.onframe();
});
Parameters:
layer
LSprite一个LSprite对象。
data
LBitmapData | Array一个LBitmapData对象,既包含一组或多组frame的精灵图表。或者是一个LBitmapData对象的数组。
list
Array每个frame的属性值。
每个数组元素格式为{x : 0, y : 0, width : 100, height : 100, sx : 0, sy : 0, dataIndex : 0}。 x, y, width, height分别对应LBitmapData对象的属性值,sx, sy是图像显示时的起始点坐标,当data是一个LBitmapData对象的数组的时候,dataIndex表示该数组的索引,用来指定使用哪个LBitmapData对象。
如果精灵图表中的每个frame大小都是一样的,你可以使用LGlobal.divideCoordinate函数来直接对图表进行分割。
示例如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>横版格斗</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<script type="text/javascript" src="../load_lufylegend.js"></script>
</head>
<body>
<div id="mylegend">loading……</div>
</body>
</html>
<script>
LInit(50,"mylegend",600,400,main);
function main(){
var loadPr= new LoadingSample1();
addChild(loadPr);
LLoadManage.load([{name:'player',path:'./stand.png'}],function(p){
loadPr.setProgress(p);
},function(result){
removeChild(loadPr);
loadPr = null;
var player = new Player(result["player"],LGlobal.divideCoordinate(1272,77,1,12),10,10);
addChild(player);
});
}
function Player(imgData,list,x,y){
base(this,LSprite,[]);
var self = this;
self.x = x;
self.y = y;
self.anime = new LAnimation(self,new LBitmapData(imgData,0,0,106,77),list);
self.addEventListener(LEvent.ENTER_FRAME,function(){
self.anime.onframe();
});
}
</script>