Flash AS3教程:Level2D类
作者 凌众技术
来源 网页制作
浏览
发布时间 2012-03-10
前面学习了Flash AS3教程:ApplySocket类, http://www.webjx.com/files/media/Level2D.swf 该类是对于同平面物体的深度简单的自动管理类,只是做到了简单的虚拟社区等,人物,建筑物等深度排列,太复杂的估计就搞不定了,但是可以继承这个类继续定义 index.com.main.Leval2D类: 代码:public class Level2D implements IEventDispatcher 现实:IEventDispatcher接口 对同一容器中的物体以Y坐标为基准进行自动深度管理 构造函数: public function Level2D(range_:DisplayObjectContainer) 参数表示要对哪个容器中的对象进行自动深度管理 手动排列深度 方法: public function reset():Array 返回排列后的对象数组,如果层级无改变,则返回当前对象数组 层级改变将调度事件Level2DEvent.LEVEL_RESET 获取对象列表 方法: public function getDisplay(arg:Object = null):Array 获取当前管理容器中,以arg方式过滤后的所有对象 若arg为空,则返回当前容器中所有对象列表 若arg为字符串,则返回当前容器中所有对象的arg属性列表 若arg为Object,则返回当前容器中,符合arg所有属性的对象列表 遍历 方法: public function forEach(fun:Function,arg:Object = null):void 以某种方式遍历所有对象,并且有arg方式进行过滤遍历 第一个参数,在遍历的时候,每遍历到一个对象,都会调用fun函数,将显示对象和排列位置传出去,例如: function callback(_display:DisplayObject,index:int){} 第二个参数,等同于getDisplay中arg参数 私有继承方法: protected function inOrder(tmpAr:Array):void 以某种特定的数组进行深度改变 该方法必须继承该类,它的子集便可以当作私有属性来调用该方法,外部不可见! 设置即时属性:(只写) public function set isTime(_isTime:Boolean):void 当参数为true,则表示层级在可以改变的时候,会自动进行改变 当参数为false,则表示需要手动调用reset方法,才能改变深度排列 range属性:(只读) public function get range():DisplayObjectContainer 当实例化管理容器后,就无法修改该属性了,只有通过调用range来读取属性了 举例: 上面那个flash的源代码,三个小方块都是可以拖拽的, CODE: import index.com.main.Level2D; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash AS3教程:Level2D类的所有评论