每天学一点flash(60) Dictionary类学习笔记
2009-10-19 23:55
453 查看
package { import flash.utils.Dictionary; import flash.display.DisplayObject; import flash.events.EventDispatcher public class Queue extends EventDispatcher { private var childrenTotal:int;//记录队列中的总元素数目 private var data:Dictionary;//记录队列元素的动态数组 public function Queue() { data=new Dictionary(true);//存储队列中的元素 childrenTotal=0;//初始化默认队列数目为0 } //添加队列元素 public function addItem(child:DisplayObject):DisplayObject { var name:String=child.name;//创建一个临时名字 data[name]=child;//用动态数组记录键和值 childrenTotal++; //递增元素 return child; } //删除队列中某一个元素 public function removeItem(child:DisplayObject):DisplayObject { //通过键来搜索是否匹配 是就删除 delete data[child.name]; childrenTotal--;//删除了自然就减少 return child; } //返回队列中的元素 public function get numChildren():int { return childrenTotal; } //通过名字搜索元素 public function getChildByName(name:String):DisplayObject { return data[name]; } //返回队列中所在位置 public function getChildIndex(child:DisplayObject):int { var index:int=0; for each( var o:DisplayObject in data) { index++; if(o==data[child.name]) { break; } } return index; } } }
Dictionary 类真的是一个很好的类,如果细心发现到,这个类是可以经常帮助你处理一些数组做不到的事情,数组里面下标是数字,
但是Dictionary类 下标可以是字符串,这样有利于我们构建键和值对应关系。这是很多帮助。在sandy三维引擎或者pvp3d引擎里面都曾经设计过一个容器类的设计,这种容器类有常见方法。
如 添加对象的方法
删除对象的方法
搜索对象的方法
返回容器当中数组
。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
等这些方法.
现在测试这个类,看看像不像我们所说的容器类
package { import flash.display.MovieClip; import flash.events.*; public class main extends MovieClip { private var myqueue:Queue; private var mybox1:box=new box(); private var mybox2:box=new box(); private var mybox3:box=new box(); public function main() { myqueue=new Queue(); trace(myqueue.addItem(mybox1)); trace(myqueue.addItem(mybox2)); trace(myqueue.addItem(mybox3)); trace(myqueue.numChildren);//测试返回的参数 trace(myqueue.getChildIndex(mybox1)); } } }
注意:private var mybox1:box=new box(); box类是我们一个MovieClip的子类。是我们通过库链接来的
输出结果:
[object box]
[object box]
[object box]
3
2
可以看到我们一个像容器类的基本功能已经有了,但是相比As3 的容器类,涉及的东西还是很多的。而这里,只是感慨Dictionary 类功能需要发掘才去实现到。
总一句:Dictionary 类其实就是一个数组,只不过这个数组比较特别一点。至于这个应用还有很多很多,日后会继续记录下来。
相关文章推荐
- 每天学一点flash(60) Dictionary类学习笔记
- 每天学习一点flash(33) as 3.0 游戏设计笔记(2)
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 每天学习一点flash(33) as 3.0 游戏设计笔记(2)
- 每天学一点flash(30) new Timer的函数 学习笔记
- 每天学一点flash(30) new Timer的函数 学习笔记
- 每天学一点flash(30) new Timer的函数 学习笔记
- 每天学习一点flash(33) as 3.0 游戏设计笔记(2)
- 每天学一点flash(31) as 3.0 游戏设计笔记(1)
- 每天学一点flash(27) as3.0自定义类 错误笔记
- 每天学习多一点flash(36) as2.0 游戏设计笔记
- 每天学习flash一点(3) flash外部读取xml
- 每天学一点flash(34) as 3.0 游戏设计笔记(3)
- 每天学一点flash(34) as 3.0 游戏设计笔记(3)
- 每天学习flash一点(3) flash外部读取xml
- 每天学习flash一点(3) flash外部读取xml
- 每天学一点flash(31) as 3.0 游戏设计笔记(1)
- 每天学一点flash(34) as 3.0 游戏设计笔记(3)