`

AS3: Dictionary Object

 
阅读更多
// Arrays use numeric indexes:
var arr:Array = new Array();
arr[0] = "value";
// Generic objects use string indexes:
var obj:Object = new Object();
obj["key"] = "value";
// Dictionary uses object keys:
var dict:Dictionary = new Dictionary();
dict[myObj] = "value";

It’s important to understand that Dictionary uses strict equality to match the object, not the reference, as the key. This means that different references to the same object will act as the same key:

import flash.utils.Dictionary;
var a:Object = new Object();
var b:Object = a; // reference to the same object
var dict:Dictionary = new Dictionary();
dict[a] = "fun!";
trace(dict[b]); // traces 'fun!' because a===b
You can use any type of object as a key, not just generic objects (you could use a Sprite, or an Array, for example). This includes primitives (string, boolean, number, int, uint) which are matched based on value (again, strict equality):

var dict:Dictionary = new Dictionary();
dict["string"] = "joy!";
trace(dict["string"]); // traces "joy" because "string"==="string"
Dictionary objects are enumerable with “for in”, and “for each” loops:

for (var key:Object in dict) {
// iterates through each object key
}
for each (var value:Object in dict) {
// iterates through each value
}
You can also set a Dictionary to use weak references as keys. This is pretty cool, because it means that if you clear all references to an object except those in a weakly referenced dictionary, that object will be available for garbage collection, which in turn will release the reference to its value.

var a:Sprite = new Sprite();
// create a weakly referenced dictionary by passing true as first param:
var dict:Dictionary = new Dictionary(true);
dict[a] = new Object();
a = null; // clear original reference to the Sprite.
分享到:
评论

相关推荐

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

    var obj3:Object = { name: "名字", age: 13, height: 170.5, say: function():void { trace("hello,world!"); } }; ``` 3. **动态属性和方法**:可以随时为Object添加属性和方法,如`obj4`和`obj5`的例子...

    iOS对象转字典 object2Dictionary

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

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

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

    contains 和 Dictionary学习

    3. `Dictionary` 不是序列化的,不能直接用于 XML 或 JSON 数据交换。 至于 `testAs2.as` 文件,虽然具体内容没有给出,但根据文件名猜测,它可能是一个 ActionScript 2.0 的源代码文件,用于测试 `contains` 方法...

    as3 资源加载管理

    此外,AS3的`SharedObject`可以用于本地数据缓存,虽然它更适合小规模的数据存储,而不是大资源的缓存。对于大资源的缓存,你可能需要自定义解决方案,比如使用内存对象池或者将资源分解成更小的部分来加载和缓存。 ...

    常见字典用法集锦及代码详解.docx

    Dim d As Object Set d = CreateObject("Scripting.Dictionary") ' 添加键值对 d.Add "a", "Athens" d.Add "b", "Belgrade" d.Add "c", "Cairo" ' 检查关键字是否存在 If d.Exists("c") Then MsgBox "指定的...

    上传AS3CBLibrary库

    5. **数据持久化**:AS3CBLibrary可能包括本地存储解决方案,比如XML、JSON或SharedObject,便于在客户端保存用户数据。 6. **UI组件**:为了简化界面设计,库可能包含自定义的用户界面组件,如按钮、滑块、进度条...

    AS-打地鼠教程.zip

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

    AS3编码规范

    ### AS3编码规范详解 ... - 不推荐使用`Object`作为`HashMap`,建议使用`Dictionary`替代。 通过上述规范的应用,开发者可以在实际项目开发过程中有效地提升代码的质量、可读性和可维护性,同时也能更好地协同工作。

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

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

    flash语言菜鸟教程

    2. **数据类型**:AS3支持基本数据类型如`Number`(浮点数和整数)、`String`、`Boolean`、`Object`等,以及复合数据类型如`Array`和`Dictionary`。 3. **函数定义**:函数在AS中用`function`关键字定义,例如`...

    字典语法基础

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

    计算重复属性

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

    autocad objectarx类的方法属性清单

    ExtensionDictionary AS Autodesk.AutoCAD.DatabaseServices.ObjectId 可读不可写 FileName AS System.String 可读可写 FlagBits AS System.Byte 可读可写 Font AS Autodesk.AutoCAD.GraphicsInterface....

    Adobe+Flash+Professional+CS5+的+ActionScript+3.0+参考

    7. **数据类型和结构**:AS3支持基本数据类型(如Number, String, Boolean)以及复杂类型(如Array, Object, Dictionary)。还有强类型的数组类,如Array和Vector,其中Vector提供类型安全的数组操作。 8. **错误...

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

    Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") ``` 2. **添加元素**:使用`Add`方法向字典中添加键值对: ```vba dict.Add "key1", "value1" ``` 3. **访问和修改元素**:通过键来...

    常用数据结构(ActionScript3版)

    字典在AS3中是通过flash.utils.Dictionary类实现的,它提供了更高效的查找方式,尤其适合关联大量数据。 7. 集合(Set) 集合是一种不包含重复元素的数据结构,AS3中的flash.utils.Set类提供了这个功能。集合的元素...

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

    关于java习惯的笔试题as2cs 将一些语法从 ActionScript 3 转换为 C# 再从 C# 转换回 ActionScript 3 的小例子。比较兼容的语法。...as2cs.py file.as ...as2cs.py ...Object 哈希转换为Dictionary<string, ob

    iOS json -》模型

    3. **JSON转模型**:现在,你可以使用`NObject`的`object(from:)`方法将JSON字典转换为模型对象。 ```swift if let jsonString = "{\"name\":\"John\",\"age\":30,\"email\":\"john@example.com\"}".data(using: ....

Global site tag (gtag.js) - Google Analytics