醒着☆☆

Flash Flex,Lite,Air,FMS,red5

  博客园 :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  148 随笔 :: 1 文章 :: 103 评论 :: 0 引用

引:http://blog.csdn.net/meetlunay/article/details/6746119

Dictionary 直接继承Object:

Dictionary 类用于创建属性的动态集合,该集合使用全等运算符 (===) 进行键比较。

将对象用作键时,会使用对象的标识来查找对象,而不是使用在对象上调用toString() 所返回的值。

若要从 Dictionary 对象中删除键,请使用 delete 运算符。

Dictionary利用键值直接访问,无须像Array那样手动编码遍历搜索,较为高效。

注:上面的例子是用object来存储数据,然后添加到dictionary里面去的。

其实就面向对象思想来说,我们应该尽量避免用object来存储数据,

首先object是会绕开编译器的检查,同时这样的方法也不易于代码的自解释,

二是应该利用自定义类的对象来存储数据。

 

Dictionary是一种以键值类型的数据结构,和Object一样,在as中能够用把他看成是Hash。

import flash.utils.Dictionary;

1.  var obj:Dictionary new Dictionary();
2.  var key:Sprite new Sprite();
3.  obj[key] 300;
4.  for(var p:String in obj)
5.  {
6.   trace(p);//[object Sprite]
7.   trace(obj[p]);//undefined
8.  }

返回是undefined。这是对的,因为键应该是一个对象而不是一个对象的toString()。
稍做一下改动。
1.  for(var p:* in obj)
这里的p使用的任意类型,这样作为键的对象就不会被toString()了。输出了正确的300。
posted on 2011-12-26 17:19 醒着/☆☆ 阅读(8) 评论(0) 编辑 收藏