AS3.0杂记——Dictionary、Object与Array
来源:http://blog.csdn.net/m_leonwang/article/details/8811829
Object、Array与Dictionary都是关联数组,就是用“键”来索引存储“值”,是“键——值”对的无序集合。
1.Object
当把Object用作关联数组时,是通用对象的每个属性名称当作键,提供对存储的值的访问,示例如下:
- var obj : Object = {key1:"value1", key2:"value2"};
- trace(obj["key1"], obj["key2"]); // 输出:value1 value2
也可以使用括号运算符 ([]) 或点运算符 (.) ——也就是动态属性在数组中添加值:
- var obj : Object = new Object();
- obj["key1"] = "value1"; // 格式错误,请勿使用空格
- obj.key2= "value2";
- trace(obj["key1"], obj.key2); // 输出:value1 value2
但是如果键里面有空格注意,空格字符可以与括号运算符一起使用,但试图与点运算符一起使用时会生成错误,所以不建议在键名称中使用空格。
2.Array
Array无法使用文本初始化该数组,也无法通过属性添加元素,它的例子如下:
- var arr : Array = new Array();
- arr["key1"] = "value1";
- arr["key2"] = "value2";
- trace(arr["key1"], arr["key2"]); // 输出:value1 value2
使用 Array 构造函数创建关联数组没有什么优势,而且Array的键必须是字符串类型,最好不要用Array做关联数组。
3.Dictionary
Dictionary是具有对象键的关联数组,即可以使用对象而非字符串作为键的关联数组,示例代码:
- var groupMap:Dictionary = new Dictionary();
- // 要用作键的对象
- var spr1:Sprite = new Sprite();
- var spr2:Sprite = new Sprite();
- var spr3:Sprite = new Sprite();
- // 要用作值的对象
- var groupA:Object = new Object();
- var groupB:Object = new Object();
- // 在字典中创建新的键-值对。
- groupMap[spr1] = groupA;
- groupMap[spr2] = groupB;
- groupMap[spr3] = groupB;
可以使用 for..in 循环或 for each..in 来循环访问 Dictionary 对象的内容,他们的区别在于, for..in 循环直接访问 Dictionary 对象的对象键,而 for each..in 访问的是值。还可以使用属性访问运算符 ([]) 访问 Dictionary 对象的值:
- for (var key:Object in groupMap)
- {
- trace(key, groupMap[key]);
- }
- /* 输出:
- [object Sprite] [object Object]
- [object Sprite] [object Object]
- [object Sprite] [object Object]
- */
- for each (var item:Object in groupMap)
- {
- trace(item);
- }
- /* 输出:
- [object Object]
- [object Object]
- [object Object]
- */
删除Dictionary的方法是:
- delete dic[key];
- //如果key是对象,记得释放对它的引用
AS3.0杂记——Dictionary、Object与Array的更多相关文章
- “AS3.0高级动画编程”学习:第二章转向行为(下)
在上一篇里,我们学习了“自主角色”的一些基本行为:寻找(seek).避开(flee).到达(arrive).追捕(pursue).躲避(evade).漫游(wander).这一篇将继续学习其它更复杂, ...
- PHP Object 转 Array,Json 转 Array
object 转 array /** * object 转 array */ function object_to_array($obj){ $_arr = is_object($obj)? get_ ...
- [JS高程]引用类型(Object、Array)
引用类型:Object.Array Object: person.name =>推荐,除非必须使用变量([])来表示 person["name"] 区别:[]可以通过变量 ...
- As3.0 类的【枚举】
As3.0 类的枚举 “枚举”是您创建的一些自定义数据类型,用于封装一小组值.ActionScript 3.0 并不支持具体的枚举工具,这与 C++ 使用 enum 关键字或 Java 使用 En ...
- 【转】javascript Object使用Array的方法
原文: http://www.cnblogs.com/idche/archive/2012/03/17/2403894.html Array.prototype.push push向数组尾部添加一项并 ...
- “AS3.0高级动画编程”学习:第一章高级碰撞检测
AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...
- “AS3.0高级动画编程”学习:第三章等角投影(上)
什么是等角投影(isometric)? 原作者:菩提树下的杨过出处:http://yjmyzz.cnblogs.com 刚接触这个概念时,我也很茫然,百度+google了N天后,找到了一些文章: [转 ...
- “AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (下)
在前一部分的最后,我们给出了一个寻路的示例,在大多数情况下,运行还算良好,但是有一个小问题,如下图: 很明显,障碍物已经把路堵死了,但是小球仍然穿过对角线跑了出来! 问题在哪里:我们先回顾一下ASta ...
- AS3.0 自定义右键菜单类
AS3.0 自定义右键菜单类: /** * 自定义右键菜单类 * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符. * 标题字符不能超过100个,并且开头的空白字符会被忽略. * 与任何 ...
随机推荐
- Android 6.0之权限管理
安卓6.0的权限体系分为非敏感权限和敏感权限,非敏感权限默认获取,可以手动关闭. 敏感权限必须由app在运行时动态申请.而存储读写空间权限是一个敏感权限,不是一个“很正常的必须权限”. 安卓并不是想要 ...
- .net程序在无.net环境下运行
看了篇文章 测试了下竟然真的可以运行 测试环境是XP下 没有装NET2.0的情况下 可以运行的 不过需要每次输入命令才能运行 点击后还是会报错 原文如下 众所周知,.net程序必须运行在.n ...
- Mac最好的虚拟机软件Parallels,体验比Vmware棒
每一位Mac电脑用户,必须安装虚拟机软件,在虚拟机里面安装Windows系统,解决日常必须用windows软件的问题,解决国内网银登录的兼容问题. 你一定不要用Mac系统自带的boot camp方式安 ...
- webapi mvc路由注册
在VS.NET 2013中,新建WebAPI项目,代码总的 GlobalConfiguration.Configure(WebApiConfig.Register); 编译时会提示:System.We ...
- Openjudge-NOI题库-垂直直方图
题目描述 Description 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过72个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. ...
- CodeForces 546D
Description 两个士兵在玩一个游戏,开始的时候第一个士兵选择一个数n,并把这个数交给第二个士兵,第二个士兵必须选择一个x满足x>1 且n能被x整除,然后将n变为n/x,然后把这个数交给 ...
- UIPickerView 创建中国地区显示 省份 市
第一步初始化 UIPickerView *pickerview; //城市滚动表 NSDictionary *dict; //用于存储省份-城市的数据 NSArray *provinceArray; ...
- 基于clip-path的任意元素的碎片拼接动效(源自鑫空间)
一.实现原理. 效果本质上是CSS3动画,就是旋转transform:rotate和位移:transform:translate,只是旋转和位移的部件是三角碎片而已.三角是使用CSS3 clip-pa ...
- mysql中文显示问号
mysql插入中文后显示为?,查到http://blog.csdn.net/chenxingzhen001/article/details/7567812中方法,即 在my.ini配置文件中的[myd ...
- 【Python之路】第四篇--Python基础之函数
三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2” ...