欢迎来到天天文库
浏览记录
ID:32367073
大小:64.00 KB
页数:4页
时间:2019-02-03
《sprite实现动画》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Sprite实现动画上一篇,我已经模仿as,加入了LBitmap和LBitmapData类,并且用它们实现了静态图片的显示。这次用Sprite来动态显示图片。依然遵循上一篇对显示对象的处理的思路,添加LSprite类,并追加show方法,如下:functionLSprite(){ varself=this; self.type="LSprite"; self.x=0; self.y=0; self.visible=true; self.childList=newArray
2、()}LSprite.prototype={ show:function(cood){ if(cood==null)cood={x:0,y:0}; varself=this; if(!self.visible)return; LGlobal.show(self.childList,{x:self.x+cood.x,y:self.y+cood.y}); }, addChild:function(DisplayObject){
3、 varself =this; self.childList.push(DisplayObject); }}复制代码因为Sprite上可以有图片等其他的可显示对象,所以我在其构造函数里,添加了childList,用来保存它上面的所有对象。然后在调用它本身的show方法的时候,将其LGlobal循环现实其子对象。这样一来,我们上一篇中显示图片的代码,也可以利用Sprite来显示了,代码如下:functionmain(){ loader=newLLoader(); loade
4、r.addEventListener(LEvent.COMPLETE,loadBitmapdata); loader.load("1.png","bitmapData");}functionloadBitmapdata(event){ varbitmapdata=newLBitmapData(loader.content); varmapimg=newLBitmap(bitmapdata); varbackLayer=newLSprite(); addChild(bac
5、kLayer); backLayer.addChild(mapimg);}复制代码我们知道,actionscript中的Sprite可以添加EnterFrame事件,用来动态显示图片,我这里也来模仿一下,因为在LSprite类中show方法是不断循环的,所以,我只需要在show方法中不断调用一个方法,就能让其循环。我假设有一个数组,里面存储了所有不断循环的所有方法,然后我就可以在show方法中循环这个数组,这样就达到了所有方法的循环,看下面functionLSprite(){ varself=t
6、his; self.type="LSprite"; self.x=0; self.y=0; self.visible=true; self.childList=newArray() self.frameList=newArray();}LSprite.prototype={ show:function(cood){ if(cood==null)cood={x:0,y:0}; varself=this; if(!self.vi
7、sible)return; LGlobal.show(self.childList,{x:self.x+cood.x,y:self.y+cood.y}); self.loopframe(); }, loopframe:function(){ varself=this; varkey; for(keyinself.frameList){ self.frameList[key](); }
8、}, addChild:function(DisplayObject){ varself =this; self.childList.push(DisplayObject); }}复制代码光假设当然是不行的,我们需要有添加这个循环事件的方法,所以我们还需要addEventListener方法,以及移除这个事件的removeEventListener方法addEventLi
此文档下载收益归作者所有