Sprite实现动画.doc_第1页
Sprite实现动画.doc_第2页
Sprite实现动画.doc_第3页
Sprite实现动画.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Sprite实现动画上一篇,我已经模仿as,加入了LBitmap和LBitmapData类,并且用它们实现了静态图片的显示。这次用Sprite来动态显示图片。依然遵循上一篇对显示对象的处理的思路,添加LSprite类,并追加show方法,如下:function LSprite() var self = this; self.type = LSprite; self.x = 0; self.y = 0; self.visible=true; self.childList = new Array()LStotype = show:function (cood) if(cood=null)cood=x:0,y:0; var self = this; if(!self.visible)return; LGlobal.show(self.childList,x:self.x+cood.x,y:self.y+cood.y); , addChild:function (DisplayObject) var self= this; self.childList.push(DisplayObject); 复制代码因为Sprite上可以有图片等其他的可显示对象,所以我在其构造函数里,添加了childList,用来保存它上面的所有对象。然后在调用它本身的show方法的时候,将其LGlobal循环现实其子对象。这样一来,我们上一篇中显示图片的代码,也可以利用Sprite来显示了,代码如下:function main() loader = new LLoader(); loader.addEventListener(LEvent.COMPLETE,loadBitmapdata); loader.load(1.png,bitmapData);function loadBitmapdata(event) var bitmapdata = new LBitmapData(loader.content); var mapimg = new LBitmap(bitmapdata); var backLayer = new LSprite(); addChild(backLayer); backLayer.addChild(mapimg);复制代码我们知道,actionscript中的Sprite可以添加EnterFrame事件,用来动态显示图片,我这里也来模仿一下,因为在LSprite类中show方法是不断循环的,所以,我只需要在show方法中不断调用一个方法,就能让其循环。我假设有一个数组,里面存储了所有不断循环的所有方法,然后我就可以在show方法中循环这个数组,这样就达到了所有方法的循环,看下面function LSprite() var self = this; self.type = LSprite; self.x = 0; self.y = 0; self.visible=true; self.childList = new Array() self.frameList = new Array();LStotype = show:function (cood) if(cood=null)cood=x:0,y:0; var self = this; if(!self.visible)return; LGlobal.show(self.childList,x:self.x+cood.x,y:self.y+cood.y); self.loopframe(); , loopframe:function () var self = this; var key; for(key in self.frameList) self.frameListkey(); , addChild:function (DisplayObject) var self= this; self.childList.push(DisplayObject); 复制代码光假设当然是不行的,我们需要有添加这个循环事件的方法,所以我们还需要addEventListener方法,以及移除这个事件的removeEventListener方法addEventListener:function (type,listener) var self = this; if(type = LEvent.ENTER_FRAME) self.frameList.push(listener); , removeEventListener:function (type,listener) var self = this; var i,length = self.frameList.length; for(i=0;i= imageArray0.length) index = 0; mapimg.bitmapData.setCoordinate(imageArraydirindexindex.x,imageArraydirindexindex.y); mapimg.x += dirarrdirindex.x*3; mapimg.y += dirarrdirindex.y*3; if(animeIndex+ 20) dirindex+; if(dirindex 3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论