`
hboje90q
  • 浏览: 11858 次
社区版块
存档分类
最新评论

关于flex编程中ActionScript3.0中的Object和Dictionary的异同

 
阅读更多

  【提出问题】最近在进行Flex的编程过程中,我们需要有一个像Java的Map一样的对象去存储和取出数据,目前在ActionScript3.0里面我们有2中选择一种是Object,另外一种是用Dictionary。究竟这2种方法有什么异同呢?在用的过程当中那种的效率高一点呢?
  【解决问题】
  1、Object Object 类位于 ActionScript运行时 类层次结构的根处。Object 由构造函数使用 new 运算符语法创建,并且可以具有动态赋予其的属性。 也可通过赋予对象文字值来创建 Object,如下所示: Adobe Integrated Runtime 中的所有运行时类均可扩展 runtime.Object 类。 可以使用 Object 类创建关联数组 。 关键是,关联数组是 Object 类的实例,而每个键/值对由属性及属性的值表示。要将关联数组声明为 Object 数据类型还有另一个原因:您可以使用对象文本来填充关联数组(但只能在您声明它时)。下面的示例使用对象文本创建一个关联数组,使用点运算符和数组访问运 算符访问项,然后通过创建一个新属性来添加新的键/值对: 类继承 -- 是主要的继承机制,并支持固定属性的继承。固定属性是声明为类定义一部分的变量、常量或方法。现在,可通过存储相关类信息的特殊类对象表示每个类定义。 
  原型继承 -- 在以前版本的 ActionScript 中是唯一的继承机制,在 ActionScript 3.0 中作为继承的替代形式。每种类都有一个关联的原型对象,而原型对象的属性由该类的所有实例共享。在创建一个类实例时,它具有对其类的原型对象的引用,这将 作为实例及与其关联的类原型对象间的链接。运行时,如果在类实例中找不到某属性,则会检查委托(该类的原型对象)中是否有该属性。如果原型对象中不包含该 属性,该过程会继续在层次结构中连续的更高级别上对原型对象进行委托检查,直至 Flash Player 找到该属性为止。 
  类继承和原型继承可同时存在,如下例所示:  class A { var x = 1 prototype.px = 2 } dynamic class B extends A { var y = 3 prototype.py = 4 } var b = new B() b.x // 1 via class inheritance b.px // 2 via prototype inheritance from A.prototype b.y // 3 b.py // 4 via prototype inheritance from B.prototype B.prototype.px = 5 b.px // now 5 because B.prototype hides A.prototype b.px = 6 b.px // now 6 because b hides B.prototype
  用函数替代类后,可以构造自定义原型继承树。利用类,原型继承树可镜像类继承树。但是,由于原型对象是动态的,因此可以在运行时添加和删除基于原型的属性。
  2、Dictionary
  Dictionary 类用于创建属性的动态集合,该集合使用全等运算符 (=== ) 进行键比较。将对象用作键时,会使用对象的标识来查找对象,而不是使用在对象上调用 toString() 所返回的值。Dictionary 集合中的原始(内置)对象(例如 Number)的行为方式与它们作为常规对象的属性时的行为方式相同。
  以下语句显示了一个 Dictionary 对象和一个 key 对象之间的关系:
  var dict:Dictionary = new Dictionary(); var obj:Object = new Object(); var key:Object = new Object(); key.toString = function() { return "key" } dict[key] = "Letters"; obj["key"] = "Letters"; dict[key] == "Letters"; // true obj["key"] == "Letters"; // true obj[key] == "Letters"; // true because key == "key" is true because key.toString == "key" dict["key"] == "Letters"; // false because "key" === key is false delete dict[key]; //removes the key
  【总结】
  Dictionary 类用于创建属性的动态集合,该集合使用全等运算符 (===) 进行键比较。将对象用作键时,会使用对象的标识来查找对象,而不是使用在对象上调用 toString() 所返回的值。Dictionary 集合中的原始(内置)对象(例如 Number)的行为方式与它们作为常规对象的属性时的行为方式相同。 
  Object也可以和Dictionary一样,除了使用字符串作为键外,还可以使用对象作为键,区别在于Object将调用键的toString()方 法,将返回的字符串作为键,而Dictionary则使用该引用作为键,既可以理解为该对象的内存地址作为键,因此内容相等的2个对象在Object中将 是同一个键,在Dictionary中将是不同的
分享到:
评论

相关推荐

    flex中文帮助 ActionScript3.0中文帮助

    ActionScript 3.0 语言和组件参考概述Adobe Flex 2 语言参考ActionScript 3.0 语言和组件参考是适用于 Flash® Player 应用程序编程接口 (API) 的参考手册。 Adobe Flex 2 语言参考ActionScript 3.0 语言和组件...

    ActionScript 3.0开发技术大全(第一部分)

     第7章 ActionScript3.0中的日期和时间  第8章 ActionScript3.0异常处理 第3篇 ActionScript3.0可视化编程  第9章 可视化编程基础  第10章 对象交互与事件处理  第11章 ActionScript3.0可视对象 ......

    flex学习_ActionScript 3.0简介

    flex学习ActionScript 3.0简介ActionScript 3.0简介ActionScript 3.0简介

    The Essential Guide to Flex 2 with ActionScript 3.0 源代码

    简介 Book Description * Understand MXML containers ...Put quite simply, this book is all youll need to master Flex 2 and ActionScript 3.0 application development. Welcome to the revolution!

    精通Flex 3.0——基于ActionScript 3.0实现_源代码

    《精通Flex 3.0——基于ActionScript 3.0实现》一书源代码。 Flex 3.0 ActionScript 3.0源代码 Flex 3.0源代码。 --------------------------- 第1篇 Flex技术概述 第1章 Flex概述 3 1.1 Flex简介 3 1.2 Flex...

    《ActionScript 3.0 语言和组件参考》中文官方版本,无错

    ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言,它在 Flash 内容和应用 程序中实现了交互性、数据处理以及其它许多功能。 ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的...

    ActionScript 3.0 组件及编程(完整)

    ActionScript 3.0 as 组件 编程 中文 ActionScript 3.0 as 组件 编程 中文

    ActionScript 3.0 API文档(CHM+HTML最新中文完整)

    《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用程序编程接口 (API) 的参考手册。 此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法和属性。 在可能的情况下,特定于 AIR 的新...

    The Essential Guide to Flex 2 with ActionScript 3.0-part 1

    This book will show you how to create powerful, rich Internet applications using Flex 2 and ActionScript 3.0. After learning how to install and becoming familiar with the basics of the Flex Builder 2...

    The Essential Guide to Flex 2 with ActionScript 3.0-part 2

    This book will show you how to create powerful, rich Internet applications using Flex 2 and ActionScript 3.0. After learning how to install and becoming familiar with the basics of the Flex Builder 2...

    ActionScript 3.0 编程.rar

    ActionScript 3.0 编程 学习FLASH BUILDER RIA 必不可少

    Flash ActionScript 3.0编程技术教程(全)

    第6~9章介绍了ActionScript 3.0的核心——类及以类为基础的面向对象程序设计方法,包括类的基本概念、ActionScript 3.0中常用类的使用、显示编程和组件类;第10、11章分别介绍了几个ActionScript 3.0实际应用的范例...

    ActionScript 3.0 语言和组件参考

    《ActionScript 3.0 语言和组件参考》概述《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用程序编程接口 (API) 的参考手册。 此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法...

    flex资料合集flex3ActionScript3.0中文版.chm

    felx3,flex资料,flex教程,ActionScript3.0中文版.chm,flex3,ActionScript

    actionscript3.0开发的进度显示条项目

    actionscript3.0开发的进度显示条项目

    ActionScript 3.0 编程(PDF)

    ActionScript 3.0 编程(PDF) ActionScript 语言及其语法、面向对象编程、使用正则表达式、处理日期时间、字符串、数组、事件、XML等等 (PDF)格式

    Actionscript3.0中文版

    资源名称:Actionscript3.0中文版   资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    ActionScript 3.0基础教程

    本书详细地介绍了 actionscript 3.0的基础知识,包括 actionscript 3.0语言、actionscript 3.0对象的操作方法、显示列表的使用、事件模型、加载外部素材、可视化编程以及利用声音和视频增强应用程序等方面的知识,并...

    ActionScript 3.0 编程.pdf

    第 1章 :ActionScript3.0 简介 关于 ActionScript ActionScript 3.0 的优点 ActionScript 3.0 中的新增功能 核心语言功能 Flash Player API 功能 与早期版本的兼容性 第 2章 :ActionScript 快速入门 编程基础 ...

Global site tag (gtag.js) - Google Analytics