`

AS3深拷贝的一个测试总结

阅读更多
package
{
	
	import flash.display.Sprite;
	import flash.net.registerClassAlias;
	import flash.utils.ByteArray;
        import flash.utils.Dictionary;


	public class TestByteArrayCopy extends Sprite
	{
		public function TestByteArrayCopy()
		{
			registerClassAlias("1111111", TestValue);
                        registerClassAlias("111111111", Dictionary);
			var TestValue = new TestValue();
			var key:TestValue = new TestValue();
			p.bagItems[key] = new TestValue();
                        p.bagItems["111"] = new TestValue();
			var byte:ByteArray = new ByteArray();
			byte.writeObject(p);
			byte.position =0;
			var o:Object = byte.readObject();
			var p2:TestValue = TestValue(o);
			
			trace(p2 is TestValue);
			trace(p2);
			trace(p2.bagItems[key]);
                        trace(p2.bagItems["111"]);
		}
	}
}

import flash.utils.Dictionary;

class TestValue
{
	public var bagItems:Dictionary = new Dictionary();
}


在这段代码是我们AS3中 常用的深拷贝

我做了这么一个小测试,得出几个结论:

1:
发现如果 我们不进行registerClassAlias("1111111", TestValue);
这拷贝出来的类对象 无法转换类型

2:
如果我们的对象中有一个Dictionary, 并且这个Dictionary的KEY 为一个对象,
那么我进行深复制后, 这个对象KEY 将一并被复制,  这样我们将无法在从这个Dictionary中通过原来的对象KEY获得 我们想要的值
分享到:
评论

相关推荐

    AS_SSD_Benchmark

    总结起来,AS_SSD_Benchmark是一个强大的硬盘性能测试工具,能够帮助用户深入理解固态硬盘的性能特点,无论是对于硬件爱好者还是专业技术人员,都是不可或缺的诊断和评估工具。通过运行这个软件,我们可以获取关于...

    AS SSD Benchmark

    4. **Benchmarks得分**:AS SSD Benchmark还会计算一个总分,该分数综合考虑了上述各项测试的结果,提供一个总体性能的评价。 在运行AS SSD Benchmark时,用户可以选择不同的测试模式,包括默认测试、自定义大小的...

    测试培训教材

     -测试总结和报告。 一个好的测试管理工具应该能把以上几个阶段都管理起来。 测试人员每时每刻都在度量别人的工作成果,而测试人员的工作成果又由谁来度量呢?度量的标准和依据是什么呢?软件测试的度量是测试...

    ActionScript3.0开发人员指南

    本章深入介绍了如何管理日历日期和时间,包括如何控制时间间隔,以及一个实际的示例——简单模拟时钟,展示了如何在AS3中实现动态时钟。 - **管理日历日期和时间**:了解如何使用`Date`对象来获取、设置和操作日期...

    56个Python使用技巧.docx

    `copy.copy()` 可以创建浅拷贝,而 `copy.deepcopy()` 创建深拷贝。 #### 示例代码: ```python import copy original = {'name': 'Alice', 'friends': ['Bob', 'Charlie']} shallow_copy = copy.copy(original) ...

    Python核心编程第二版

     6.20 *拷贝Python对象、浅拷贝和深拷贝   6.21 序列类型小结   6.22 练习   第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   ...

    Python核心编程(第二版).pdf (压缩包分2部分,第一部分)

     6.20 *拷贝python对象、浅拷贝和深拷贝   6.21 序列类型小结   6.22 练习   第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   ...

    ffmpeg编译脚本

    这通常涉及到复杂的编译选项和依赖管理,因此编写一个能够自动完成这些工作的脚本就显得尤为重要了。 #### 三、解决方案 为了能够在Android平台上使用FFmpeg的功能,我们需要完成以下几个关键步骤: 1. **下载...

    Python核心编程(第二版).pdf (压缩包分2部分,第二部分)

     6.20 *拷贝python对象、浅拷贝和深拷贝   6.21 序列类型小结   6.22 练习   第7章 映像和集合类型   7.1 映射类型:字典   7.1.1 如何创建字典和给字典赋值   7.1.2 如何访问字典中的值   ...

    软件工程工资管理系统

    sp3是该系统的一个版本号,只有sp4以上的SQL 2000系统才能够支持纯ODBC连接方式。 Vb6.0功能强大的应用程序开发工具,主要支持基于面向对像化的语言的各种开发项目。 2.需求分析 2.1系统需求和功能 工资管理信息...

    详解将Python程序(.py)转换为Windows可执行文件(.exe)

    首先,你需要安装一个名为PyInstaller的工具。这是一个用于将Python脚本打包成可执行文件的强大工具。为了加速安装过程,推荐使用国内的豆瓣镜像源。 ```bash pip install pyinstaller -i ...

    Python 2.4 Quick Reference Card

    - **引用计数**: 每个对象都有一个引用计数,用于追踪有多少变量指向该对象。 - **可变与不可变对象**: - 不可变对象包括数字、字符串等。 - 可变对象如列表和字典可以在创建后修改。 **命名空间** - **全局命名...

Global site tag (gtag.js) - Google Analytics