- 浏览: 11858 次
最新评论
【提出问题】最近在进行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中将是不同的
发表评论
-
strcpy strncpy (拷贝字符串)
2012-07-06 09:52 1030strcpy(拷贝字符串) 表头文件 #include ... -
solr DataImportHandler
2012-07-06 09:47 845大多数的应用程序将数据存储在关系数据库、xml文件中。对这 ... -
RAC结构与组件
2012-07-03 13:44 649一、RAC主要组件, ... -
一个FLEX4 二级联动 下拉菜单的例子
2012-07-02 13:30 863发现FLEX4和3 有一些细微的不同, 直接给dataPr ... -
flex datechooser 日期小例子
2012-07-02 13:30 614在这个例子中,我们讲解的是DateChooser 控件,这 ... -
flex 日期下拉框,选择一段日期
2012-07-02 13:30 602在一般网页的制作过程中,我们做的程序,日期选择框,通过js ... -
在Flex组件上显示手型的鼠标
2012-07-02 13:30 551在Flex组件上显示手型的鼠标 有些时候,我们需 ... -
使用Adobe Flex开发Google Wave Gadgets
2012-07-02 13:30 504Adobe Flash Builder 4 简 ... -
Flex 向Java传递Object的方法
2012-07-01 10:59 621在开发中,遇到Flex向Java传递一个数组的情况,从实际 ... -
Flex 并行调用Remote Object的性能问题
2012-07-01 10:59 818[问题] 如果在一个Frame内,同时调用多个Remot ... -
Flex array数组到java Object[] 的转换方法
2012-07-01 10:59 985若Flex端传递的对象为 var arr:Array ... -
flex 中Tree的数据由数组提供
2012-07-01 10:58 479flex/spark" xmln ... -
flex4:中DataGroup组件获取数据源(ArrayCollection方式)实例
2012-06-30 17:24 697flex/spark" xmlns:mx=&q ... -
Adobe Flex UIComponent LifeCycle
2012-06-30 17:24 586Adobe Flex UIComponent L ... -
Flex编程学习基础
2012-06-30 17:24 622Flex是Adobe公司推出 ... -
Flex组件自动获取输入焦点
2012-06-30 17:24 644浏览器加载swf后,Flex组件自动获取输入焦点。 1.在 ...
相关推荐
ActionScript 3.0 语言和组件参考概述Adobe Flex 2 语言参考ActionScript 3.0 语言和组件参考是适用于 Flash® Player 应用程序编程接口 (API) 的参考手册。 Adobe Flex 2 语言参考ActionScript 3.0 语言和组件...
第7章 ActionScript3.0中的日期和时间 第8章 ActionScript3.0异常处理 第3篇 ActionScript3.0可视化编程 第9章 可视化编程基础 第10章 对象交互与事件处理 第11章 ActionScript3.0可视对象 ......
flex学习ActionScript 3.0简介ActionScript 3.0简介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源代码。 --------------------------- 第1篇 Flex技术概述 第1章 Flex概述 3 1.1 Flex简介 3 1.2 Flex...
ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言,它在 Flash 内容和应用 程序中实现了交互性、数据处理以及其它许多功能。 ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的...
ActionScript 3.0 as 组件 编程 中文 ActionScript 3.0 as 组件 编程 中文
《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用程序编程接口 (API) 的参考手册。 此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法和属性。 在可能的情况下,特定于 AIR 的新...
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...
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 编程 学习FLASH BUILDER RIA 必不可少
第6~9章介绍了ActionScript 3.0的核心——类及以类为基础的面向对象程序设计方法,包括类的基本概念、ActionScript 3.0中常用类的使用、显示编程和组件类;第10、11章分别介绍了几个ActionScript 3.0实际应用的范例...
《ActionScript 3.0 语言和组件参考》概述《ActionScript 3.0 语言参考》是 Flash® Player 和 Adobe AIR™ 应用程序编程接口 (API) 的参考手册。 此版本包括支持 Adobe AIR 运行时环境的新 ActionScript 类、方法...
felx3,flex资料,flex教程,ActionScript3.0中文版.chm,flex3,ActionScript
actionscript3.0开发的进度显示条项目
ActionScript 3.0 编程(PDF) ActionScript 语言及其语法、面向对象编程、使用正则表达式、处理日期时间、字符串、数组、事件、XML等等 (PDF)格式
资源名称:Actionscript3.0中文版 资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
本书详细地介绍了 actionscript 3.0的基础知识,包括 actionscript 3.0语言、actionscript 3.0对象的操作方法、显示列表的使用、事件模型、加载外部素材、可视化编程以及利用声音和视频增强应用程序等方面的知识,并...
第 1章 :ActionScript3.0 简介 关于 ActionScript ActionScript 3.0 的优点 ActionScript 3.0 中的新增功能 核心语言功能 Flash Player API 功能 与早期版本的兼容性 第 2章 :ActionScript 快速入门 编程基础 ...