http://blog.csdn.net/songhuanren/archive/2007/12/25/1966643.aspx
建议多用Dictionary , 最好是取代object (object 不会被编辑器检测) ,
下面是网上的关于Dictionary
AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类。Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对的键。例如:
var obj:Object = new Object();
obj["name"] = 1; // 键是字符串"name"
obj[1] = 2; // 键是1 (被转换成字符串"1")
obj[new Object()] = 3; // 键是new Object(),被转传成字符串"[object Object]"
for (var prop:String in obj) {
trace(prop); // 输出:[object Object], 1, name
trace(obj[prop]); // 输出:3, 2, 1
}
也就是说,无论用什么类型的变量作为键,都将被转换成字符串。同时,如果你使用了不同的对象作为键,都会北转换成字符串"[object Object]"作为键,因此而指向了同一个数据。例如:
ActionScript Code:
var a:Object = new Object();
var b:Object = new Object();
var obj:Object = new Object();
obj[a] = 1; // obj["[object Object]"] = 1;
obj[b] = 2; // obj["[object Object]"] = 2;
for (var prop:String in obj) {
trace(prop); // traces: [object Object]
trace(obj[prop]); // traces: 2
}
Dictionary类将没有这个限制,你可以将键设置成任何一种数据类型。例如:
import flash.utils.Dictionary;
var a:Object = new Object();
var b:Object = new Object();
var dict:Dictionary = new Dictionary();
dict[a] = 1; // dict[a] = 1;
dict[b] = 2; // dict[b] = 2;
for (var prop:* in dict) {
trace(prop); // traces: [object Object], [object Object]
trace(dict[prop]); // traces: 1, 2
}
虽然在trace的时候,输出的还是[object Object],但是这个结果是对象的toString的结果。在Dictionary对象中,代表的是不同的对象引用。
在Directionary类的构造函数中传入true
var dict:Dictionary = new Dictionary(true); // use weak references as keys
var obj:Object = new Object();
dict[obj] = true;
delete obj;
虽然dict中有引用到obj,但并不是一个有效引用,所以obj仍然会被垃圾回收
分享到:
相关推荐
通过@font-face规则,我们可以定义新的字体家族,并引用本地或网络上的字体文件,从而在Flex组件中使用这些自定义字体。 **AS3操作XML**指的是使用ActionScript 3(AS3)处理XML数据。AS3提供了强大的XML类库,包括...
在使用FLEX和Actionscript开发FLASH游戏的过程中,创建和管理游戏关卡是至关重要的部分。在提供的代码中,我们看到一个名为`LevelDefinitions`的类,这个类是用于定义和管理游戏的不同级别。以下是该类的主要知识点...
在本篇关于使用FLEX和Actionscript开发FLASH游戏的文章中,我们将专注于游戏对象管理器(GameObjectManager)的实现,特别是碰撞检测这一关键功能。GameObjectManager是游戏引擎的核心组件,负责处理游戏对象的生命...
在使用FLEX和Actionscript开发FLASH游戏时,平铺式背景渲染是一种常见的技术,用于创建无限滚动或大型的游戏环境。这种技术的关键在于有效地管理和更新游戏中的背景元素,使其看起来像是连续延伸的。以下是对`...
在实际开发中,使用像 BlazeDS 或 GraniteDS 这样的库可以帮助简化 Java 与 Flex 之间的数据转换和通信过程。这些库提供了自动类型转换、消息序列化和反序列化等功能,使开发者能够更专注于业务逻辑而不是底层数据...
这些类都可以作为数据映射使用,但它们在编辑栏下拉列表中的项目排序方式有所不同。`SortedList` 按照键排序,`ListDictionary` 保持添加顺序,而 `Hashtable` 的顺序是任意的。因此,选择哪种类型的数据映射取决于...
例如,在Adobe Flex应用中,可以使用NetConnection对象与远程服务器建立连接,并通过AMF格式发送和接收数据。此外,AMF数据流也可以通过IDataInput和IDataOutput接口进行读取和写入,这些都是Flash Player的编程接口...
`hashMap`类是基于Flex框架中的`Dictionary`类构建的。`Dictionary`是Flash中内置的一个类,它可以存储任意类型的键值对。尽管`Dictionary`类本身已经非常强大,但在某些场景下,开发人员可能需要更高级的功能或更...
5. **数据类型和数据结构**:AS3有动态和静态类型的区分,了解如何使用Array、Dictionary、Vector等数据结构可以优化代码性能。 6. **错误处理**:学习如何使用try-catch语句进行错误处理,以确保程序的健壮性。 7...
ActionScript3.0 API是Adobe Flex开发中的核心组成部分,它为构建富互联网应用程序(RIA)提供了强大的编程语言支持。ActionScript3.0相较于之前的版本有了显著的改进,尤其是在类型系统、性能和面向对象编程特性...
到了12c版本,Flex Cluster和Flex ASM的出现,彻底改变了RAC集群中数据库实例和ASM实例之间的关系,提供了更为灵活的集群管理和存储解决方案。 RAC与单实例数据库(Single-Instance DB)的区别主要体现在其支持的...
yum install make gcc flex bison cd /root/undrop-for-innodb-master make 会产生三个文件c_parser innochecksum_changer stream_parser
此外,AS3还支持内部类的使用,即可以在一个类的外部定义另一个类,这样的内部类只能被其所在的类或同一个文件中的其他内部类所访问。 **转换建议**: - 直接迁移AS2的类时通常不会遇到太多问题。 - 考虑利用`...
10. **文档和示例**:一个完整的库应该提供详尽的API文档和示例代码,帮助开发者理解和使用库中的功能。 不过,要了解AS3CBLibrary库的具体内容和使用方式,最好还是查看库的源代码和官方文档(如果有的话)。通过...
28.3使用FlexBuilder3创建和部署AIR应用 588 28.4AIR应用配置文件 591 28.4.1应用程序配置 591 28.4.2初始化窗口设置 595 28.4.3图标设置 595 28.4.4关联文??柚?596 28.5小结 597 第29章AIR部分特性介绍 598 29.1AIR...
adobe director 11.5 英文帮助内容包括:Using Director ,Scripting Dictionary ,Core JavaScript Reference 1.5,ActionScript 2.0 Language Reference ,Overview of the Adobe Flex 2 Language ...
字典在AS3中是通过flash.utils.Dictionary类实现的,它提供了更高效的查找方式,尤其适合关联大量数据。 7. 集合(Set) 集合是一种不包含重复元素的数据结构,AS3中的flash.utils.Set类提供了这个功能。集合的元素...
10. 集合框架:包括Array、Vector和Dictionary等数据结构,提供对数据的高效管理和操作,适应不同场景的需求。 通过学习《FriendsofED.Object.Oriented.ActionScript.3.0.Jul.2007》,开发者不仅可以掌握...
### AS3编码规范详解 ... - 不推荐使用`Object`作为`HashMap`,建议使用`Dictionary`替代。 通过上述规范的应用,开发者可以在实际项目开发过程中有效地提升代码的质量、可读性和可维护性,同时也能更好地协同工作。