来源:http://blog.csdn.net/m_leonwang/article/details/8811829

Object、Array与Dictionary都是关联数组,就是用“键”来索引存储“值”,是“键——值”对的无序集合。

1.Object
当把Object用作关联数组时,是通用对象的每个属性名称当作键,提供对存储的值的访问,示例如下:

  1. var obj : Object = {key1:"value1", key2:"value2"};
  2. trace(obj["key1"], obj["key2"]);  // 输出:value1 value2

也可以使用括号运算符 ([]) 或点运算符 (.) ——也就是动态属性在数组中添加值:

  1. var obj : Object = new Object();
  2. obj["key1"] = "value1"; // 格式错误,请勿使用空格
  3. obj.key2= "value2";
  4. trace(obj["key1"], obj.key2);  // 输出:value1 value2

但是如果键里面有空格注意,空格字符可以与括号运算符一起使用,但试图与点运算符一起使用时会生成错误,所以不建议在键名称中使用空格。

2.Array
Array无法使用文本初始化该数组,也无法通过属性添加元素,它的例子如下:

  1. var arr : Array = new Array();
  2. arr["key1"] = "value1";
  3. arr["key2"] = "value2";
  4. trace(arr["key1"], arr["key2"]); // 输出:value1 value2

使用 Array 构造函数创建关联数组没有什么优势,而且Array的键必须是字符串类型,最好不要用Array做关联数组。

3.Dictionary
Dictionary是具有对象键的关联数组,即可以使用对象而非字符串作为键的关联数组,示例代码:

  1. var groupMap:Dictionary = new Dictionary();
  2. // 要用作键的对象
  3. var spr1:Sprite = new Sprite();
  4. var spr2:Sprite = new Sprite();
  5. var spr3:Sprite = new Sprite();
  6. // 要用作值的对象
  7. var groupA:Object = new Object();
  8. var groupB:Object = new Object();
  9. // 在字典中创建新的键-值对。
  10. groupMap[spr1] = groupA;
  11. groupMap[spr2] = groupB;
  12. groupMap[spr3] = groupB;

可以使用 for..in 循环或 for each..in 来循环访问 Dictionary 对象的内容,他们的区别在于, for..in 循环直接访问 Dictionary 对象的对象键,而 for each..in 访问的是值。还可以使用属性访问运算符 ([]) 访问 Dictionary 对象的值:

  1. for (var key:Object in groupMap)
  2. {
  3. trace(key, groupMap[key]);
  4. }
  5. /* 输出:
  6. [object Sprite] [object Object]
  7. [object Sprite] [object Object]
  8. [object Sprite] [object Object]
  9. */
  10. for each (var item:Object in groupMap)
  11. {
  12. trace(item);
  13. }
  14. /* 输出:
  15. [object Object]
  16. [object Object]
  17. [object Object]
  18. */

删除Dictionary的方法是:

    1. delete dic[key];
    2. //如果key是对象,记得释放对它的引用

AS3.0杂记——Dictionary、Object与Array的更多相关文章

  1. “AS3.0高级动画编程”学习:第二章转向行为(下)

    在上一篇里,我们学习了“自主角色”的一些基本行为:寻找(seek).避开(flee).到达(arrive).追捕(pursue).躲避(evade).漫游(wander).这一篇将继续学习其它更复杂, ...

  2. PHP Object 转 Array,Json 转 Array

    object 转 array /** * object 转 array */ function object_to_array($obj){ $_arr = is_object($obj)? get_ ...

  3. [JS高程]引用类型(Object、Array)

    引用类型:Object.Array Object: person.name   =>推荐,除非必须使用变量([])来表示 person["name"] 区别:[]可以通过变量 ...

  4. As3.0 类的【枚举】

    As3.0 类的枚举   “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...

  5. 【转】javascript Object使用Array的方法

    原文: http://www.cnblogs.com/idche/archive/2012/03/17/2403894.html Array.prototype.push push向数组尾部添加一项并 ...

  6. “AS3.0高级动画编程”学习:第一章高级碰撞检测

    AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...

  7. “AS3.0高级动画编程”学习:第三章等角投影(上)

    什么是等角投影(isometric)? 原作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com 刚接触这个概念时,我也很茫然,百度+google了N天后,找到了一些文章: [转 ...

  8. “AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (下)

    在前一部分的最后,我们给出了一个寻路的示例,在大多数情况下,运行还算良好,但是有一个小问题,如下图: 很明显,障碍物已经把路堵死了,但是小球仍然穿过对角线跑了出来! 问题在哪里:我们先回顾一下ASta ...

  9. AS3.0 自定义右键菜单类

    AS3.0 自定义右键菜单类: /** * 自定义右键菜单类 * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符. * 标题字符不能超过100个,并且开头的空白字符会被忽略. * 与任何 ...

随机推荐

  1. 使用rsync无密码传输

    众多数据库服务器的管理过程中,在不同服务器间的文件传输是免不了的.您可以使用scp命令或FTP方法完成文件的发送和接收,这篇文章我将给大家介绍另外一种方法,这就是rsync命令.rsync是文件传输程 ...

  2. 【Python】Markov text generator马尔科夫文字生成器

    遍历一段文字,统计每个字后面出现的字和其次数,当前一个字确定的时候,计算后一个字出现的百分比,用这个百分比作为文字生成器中后一个字出现的概率进行文字生成 from random import rand ...

  3. C++之指针例题解析

    看了挺长一段时间的C了,基本上是把基础语法过关了,偶然遇见一个C++的面试题,分析一下,作为一段时间的打卡. 代码在编译器里边打一下, #include <iostream> using ...

  4. CSS3 Filter滤镜效果

    关注到它是在一次分享会当中,很神奇,只需写一行代码就可以变身很美的视觉效果,这就是CSS3滤镜. 语法 filter:fuction(param); 如今浏览器支持情况相比以前乐观很多,点击查看兼容 ...

  5. Anaconda 安装概要

    Anaconda 作为开源项目,集成了Python的大部分第三方包,如:pandas,Numpy,scipy等. 1. 下载地址:https://www.continuum.io/downloads ...

  6. 解决larave-dompdf中文字体显示问题

    1.安装laravel-dompdf依赖. Packagist:https://packagist.org/packages/barryvdh/laravel-dompdf composer requ ...

  7. CMake如何执行shell命令

    我在cmake编译后想执行一些特定的shell命令(执行.lcov收集代码覆盖报告等),我又不想写到XX.sh的shell脚本中,如何直接通过CMake执行shell命令呢? 在网上翻江倒海了一下,找 ...

  8. 浅谈position: absolute和position:relative

    一.在此先说一下文档流的概念: 1,文档流定义: 百度百科定义:文档流是文档中可显示对象在排列时所占用的位置. 大多网友的理解:元素的位置由元素在 (X)HTML 中的位置决定.将窗体自上而下分成一行 ...

  9. BeautifulSoup抓取列表页锚文本

    素闻BeautifulSoup提取效率低,艾玛,第一印象果然是很要命的,反正比Re 和 Lxml 是要慢的,不过就无奈Re的正则折腾来折腾去,没写出来,Lxml 的 Xpath 又用得不好. 不过就这 ...

  10. Hadoop查看目录文件大小的脚本

    hadoop fs -du / | awk '{ sum=$1 ;dir2=$3 ; hum[1024**3]="Gb";hum[1024**2]="Mb";h ...