`
cuixuxucui
  • 浏览: 351804 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转]AS3中Object与Dictionary的区别

阅读更多

AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类。

Dictionary类和Object唯一的区别在于:

Dictionary对象可以使用非字符串作为键值对的键,而Object只能使用字符串做为键值对的键。


以下用两个简单例子来说明具体的差别:

1、使用Object: 

使用Object
var a:Object = {val:135}
var b:Object = {val:248};   

var obj:Object = new Object();   
obj[a] 
= 1;        // 键为对象a,值为数字1
obj[b] = 2;        // 键为对象b,值为数字2

for(var p:Object in obj)
{
    trace(p);        
// 输出键
    trace(obj[p]);    // 输出此键对应的值
}


输出结果:
[object Object]
2


结果分析:
因为前面说了Object的键只能使用字符串,所以当我们使用Object来做键的时候,都会被转为[object Object],
obj[a] = 1;
obj[b] = 2;
所以在这里,这两句代码的实际效果是这样的
obj["[object Object]"] = 1;
obj["[object Object]"] = 2;
当执行第二句代码的时候,实际上就是更新前面一个的值,所以才输出这样的结果也就不奇怪了。


2、使用Dictionary:
使用Dictionary
var a:Object = {val:135}
var b:Object = {val:248};   

var obj:Dictionary = new Dictionary();   
obj[a] 
= 1;        // 键为对象a,值为数字1
obj[b] = 2;        // 键为对象b,值为数字2

for(var p:Object in obj)
{
    trace(p);        
// 输出键
    trace(obj[p]);    // 输出此键对应的值
    trace(p["val"]); // 输出键(Object)的val属性的值
}


输出结果:
[object Object]
1
135

[object Object]
2
248


结果分析:

因为Dictionary和Object的区别所在,可以使用任意类型数据做键,所以能得到我们想要的结果。

 

所在在平时我们使用Object或其子类的时候,如果键是字符串,也可以达到键值对的效果,

但当键需要Object时,就需要Dictionary了。 

分享到:
评论

相关推荐

    iOS对象转字典 object2Dictionary

    "iOS对象转字典 object2Dictionary"这个话题聚焦于如何将Objective-C或Swift中的对象转换成字典(NSDictionary或Swift的Dictionary类型),进而可能进一步转化为JSON格式。这种转换在序列化和反序列化过程中扮演着...

    as3数据结构-中文注释.rar

    6. **哈希表(Hash Table)**:AS3的Object类实质上就是一个简单的哈希表,通过键值对快速查找和存取数据。如果需要更复杂、性能更高的哈希表,可以自定义数据结构,例如使用Dictionary类,它允许将任何类型作为键,...

    as3 资源加载管理

    在AS3(ActionScript 3)中,资源加载管理是一个重要的概念,特别是在开发富互联网应用程序(RIA)或游戏时。白鹭引擎(Egret Engine)是一个流行的2D游戏开发框架,它提供了一套完善的资源管理系统,使得资源的加载...

    上传AS3CBLibrary库

    9. **第三方库兼容**:如果AS3CBLibrary与其它流行的库如Flex SDK或Flash CS等兼容,它可以帮助开发者更好地整合各种资源。 10. **文档和示例**:一个完整的库应该提供详尽的API文档和示例代码,帮助开发者理解和...

    AS-打地鼠教程.zip

    在AS3中,一切皆为对象,所有的类都继承自Object类。基础数据类型如Number、Boolean、String等都是类,还有Array、Dictionary等复杂的数据结构。AS3的事件模型也更为成熟,通过Event类和EventListener接口处理程序中...

    contains 和 Dictionary学习

    在编程领域,`contains` 和 `Dictionary` 是两个非常重要的概念,特别是在面向对象的语言中,如 ActionScript。这里我们将深入探讨这两个概念,并结合提供的 `testAs2.as` 文件进行学习。 首先,`contains` 是一个...

    字典语法基础

    Dim d As New Dictionary Set d = CreateObject("scripting.Dictionary") d.Add "张三", "123" d.Add "李四", "456" '对象.新增 Key,Item '注意:在本地窗口中可能看不到Item条件。 'Keys方法 '返回一个数组,...

    AS 下实现的简单的数据结构

    字典是键值对的集合,与JavaScript的对象类似,但AS中的Dictionary允许非字符串作为键,提供了更灵活的数据存储。 9. 树(Tree) 树数据结构在AS中需要自定义实现,如二叉树或AVL树。树适用于需要快速查找、插入和...

    新技术培训 培训讲义4_对象和字典.doc

    总结来说,Object和Dictionary在AS3中提供了不同的数据存储和检索机制。Object更适合简单的键值对存储,而Dictionary则适用于需要基于对象引用的键值对操作,尤其在处理复杂数据结构时。理解和熟练运用这两种数据...

    VB解析Json转换为Xml

    Dim jsonObject As Dictionary(Of String, Object) = jsonSerializer.Deserialize(Of Dictionary(Of String, Object))(jsonData) ``` 3. 将反序列化的Json对象转换为Xml,这里可以使用LINQ to XML来实现: ```vb...

    AS游戏设计常用数据结构

    AS中的Object类可以作为简单的哈希表,但其键必须为字符串类型。如果需要非字符串键,可以使用flash.utils.IDictionary接口或第三方库如dslib_0.9.5_beta提供的哈希表实现。 树(Tree)数据结构,如二叉树,用于...

    计算重复属性

    Static d As Object Static i As Long Dim iDup As Integer Dim sField ' ---------------------------------------- '这里填写需要检查的字段名 sField = [A] ' ---------------------------------------- If ...

    Flas动画--转盘

    【描述】:在这款Flas转盘游戏中,核心功能实现是通过AS3编程语言来完成的。ActionScript 3是Flash平台的重要组成部分,它提供了一种强大的面向对象的编程能力,使得开发者能够创建动态、交互性的内容。转盘的运作...

    iphone 对象转成字典

    在iOS开发中,尤其是使用Objective-C或Swift进行iPhone应用编程时,经常需要将对象转换为字典(Dictionary)格式,以便于数据存储、网络传输或者序列化操作。这个过程被称为对象映射(Object Mapping)。本篇文章将...

    Excel-VBA宏编程实例源代码-通过Dictionary对象删除文档.zip

    在提供的实例“通过Dictionary对象删除文档.xlsm”中,可能是通过创建一个`Dictionary`来存储某些数据的键(如单元格地址或特定标识符),然后遍历工作表,如果找到与字典中的键匹配的单元格,就删除对应的行或清除...

    AS3编码规范

    ### AS3编码规范详解 #### 一、概述 AS3编码规范是一套旨在提升Adobe Flash平台应用程序质量和可维护性的指导原则。本规范由Artlee在2010年提出,结合了作者多年来的Flash项目开发及管理经验,吸收了驼峰命名法与...

    台达PLC通过CANOPEN控制步进电机

    在台达PLC中,我们需要配置相关的CANOPEN节点ID、PDO(Process Data Object)映射以及SDO(Service Data Object)参数,以便正确地与步进电机驱动器通信。 在实际应用中,PLC通过发送PDO报文来改变步进电机的运行...

    flash 拼图游戏

    在拼图游戏的实现过程中,还会涉及到一些其他关键概念,如时间轴控制(Timeline Control)、对象实例化(Object Instantiation)以及数组和对象字典(Array和Object Dictionary)的使用,这些都对于管理拼图块的状态...

    java关于字符串拼接的笔试题-as2cs:将一些语法从ActionScript转换为C#的小例子

    关于java习惯的笔试题as2cs 将一些语法从 ActionScript 3 转换为 C# 再从 C# 转换回 ActionScript 3 的小例子。比较兼容的语法。 使用 SimpleParse 的 Typographify 示例来自 David Mertz 受版权保护的文章,在该...

Global site tag (gtag.js) - Google Analytics