clone 某个对象,支持Vector类型和Array类型
需要引用类库as3-commons-reflect
http://www.as3commons.org/as3-commons-reflect/
/**
* 深度clone某个对象,包含Vector 和 Array
*/
public
static
function
clone
(_obj
:
*
):
*
{
var
returnCloneObj
:*;
var
objType
:
Type
=
Type
.
forInstance
(_obj
);
if
(_obj
is
Vector
.<*>
|| _obj
is
Array
)
{
returnCloneObj
=
new
objType
.
clazz
();
for
each
(var
eachCloneObj
:*
in
_obj
)
{
returnCloneObj
.
push
(cloneObj
(eachCloneObj
));
}
}
else
{
returnCloneObj
=
cloneObj
(_obj
);
}
return
returnCloneObj
;
}
/**
* clone 只能clone简单对象的所有的public属性
*/
private
static
function
cloneObj
(_obj
:
*
):
*
{
var
objType
:
Type
=
Type
.
forInstance
(_obj
);
var
cloneObj
:*
=
new
objType
.
clazz
();
for
each
(var
field
:
Field
in
objType
.
properties
)
{
if
(field
is
Variable
|| field
is
Accessor
&&
Accessor
(field
).
writeable
&&
field
.
name
!=
'prototype'
)
{
cloneObj
[
field
.
name
]
=
_obj
[
field
.
name
];
}
}
return
cloneObj
;
}
分享到:
相关推荐
asvector工具类
AS3提供了Array、Vector和Object等数据结构。Array是动态大小的列表,而Vector提供类型安全和性能优化的数组。Object是所有其他对象的基类,可以用来存储键值对,类似于JavaScript的对象。 六、网络通信 AS3提供了...
然而,Unity的`PlayerPrefs`系统只支持基本的数据类型,如字符串、整数和浮点数,因此不能直接用来存储`Vector3`。 为了解决这个问题,我们可以利用JSON(JavaScript Object Notation)这一轻量级的数据交换格式。...
C++对象模型是C++编程的基础,它描述了如何在内存中表示类和对象,以及它们之间的关系。首先,我们需要了解C++中的构造函数和析构函数,这两个函数在对象生命周期的开始和结束时被调用,用于初始化和清理对象的状态...
AS3的对象支持原型继承和动态属性,提供了强大的数据封装和扩展能力。 3. **链表**:虽然AS3标准库中没有直接提供链表实现,但开发者可以通过构造自己的类来实现。链表数据结构在处理大量元素时,插入和删除操作比...
在这个“STL容器之array和vector.zip”压缩包中,我们主要探讨两个重要的容器:`std::array`和`std::vector`。它们都是用于存储元素序列的容器,但有着不同的特性和使用场景。 `std::array`是C++11引入的一个固定...
在Java编程语言中,集合框架是处理对象数组的重要工具,其中`List`、`ArrayList`、`Vector`、`HashTable`和`HashMap`是五个关键的接口和类,它们各有不同的特性和用途。以下是这些概念的详细解释: 1. **List接口**...
在AS3中,可以使用Array或Vector对象来存储奖品信息,包括奖品名称、图片路径等。 4. **动画**:在Flash环境中,AS3结合Timeline可以创建复杂的动画效果。例如,通过改变对象的位置、旋转角度、透明度等属性,模拟...
《深度探索C++对象模型》是一本面向有C语言基础的读者,旨在深入解析C++这一强大编程语言中关于对象模型的专著。C++作为面向对象编程的典范,其对象模型是理解语言特性和底层机制的关键。这本书的中文清晰版提供了一...
AS3中的Array和Vector类都提供了迭代器接口。 18. 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。AS...
在 AS3 中,数组有两种形式:`Array` 和 `Vector`。 **示例代码:** ```as3 var arr:Array = [1, "two", 3.0]; trace(arr[1]); // 输出: two ``` #### 七、日期类型(Date) 日期类型用于处理日期和时间。它可以...
`vector`在内存中连续存储元素,这使得随机访问变得高效,同时也支持动态增长和收缩以适应数据的变化。 ### `vector`的定义 `vector`的定义通常包含元素类型和初始容量两部分。例如,如果我们要定义一个存储整数的`...
vector3 类,实现的功能 1、重载赋值运算符“=” 2、重载“==”和“!=”操作符 3、置为零向量 4、重载一元运算符“-” 5、重载二元预算法“+”“-” 6、标量的乘除法 7、重载自反运算符 8、向量单位化 9、向量的...
在C++编程中,"vectormap"的概念似乎是一种结合了`std::vector`和`std::map`特性的自定义容器。`std::vector`是一个动态数组,它提供了随机访问和高效的操作,如插入和删除元素。而`std::map`则是一个关联容器,它...
9. **STL(标准模板库)**:STL是C++的一个重要组成部分,包含容器(如vector、list)、迭代器、算法和函数对象等,是高效编程的重要工具。 10. **内存管理**:C++提供了原始的指针操作,但也引入了智能指针(如...
AS3是其最新的版本,提供了更强大的性能和面向对象的编程模型。 首先,我们要了解AS3的基础知识。AS3是基于ECMAScript 4的一个子集,引入了类和包的概念,增强了类型检查和错误处理。它的语法结构与Java和C#类似,...
题目要求读取一组整数到`vector`对象中,并计算并输出相邻元素的和。若元素个数为奇数,则直接输出该元素的值。下面详细介绍如何实现这一功能: 1. **读取数据**: 使用`while (cin >> v)`循环读取整数并使用`push...
10 Special Array Antenna Configurations 269 10.1 Conformal Array and Phased Array Antennas 269 10.1.1 Circular Sector Array and Phased Array Antenna 270 10.2 Volume Array and Phased Array Antennas 276...
在C++编程中,STL(Standard Template Library,标准模板库)是一个不可或缺的部分,它提供了高效、可重用和模块化的代码实现。STL的核心组件包括容器、迭代器、算法和函数对象。在这个主题中,我们将深入探讨四个...
《深度探索C++对象模型》是一本面向C++高级开发者的经典著作,旨在揭示C++对象模型的内在机制和原理。这本书深入剖析了C++语言的底层细节,帮助读者理解对象在内存中的表示方式,以及如何通过指针、引用、继承、多态...