本文主要是介绍每天学一点flash 60 Dictionary类学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
- 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 类其实就是一个数组,只不过这个数组比较特别一点。至于这个应用还有很多很多,日后会继续记录下来。
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这篇关于每天学一点flash 60 Dictionary类学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!