`
china34420
  • 浏览: 137457 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

最近在使用.minerva3.3.0的时候发现了一个bug

阅读更多
//1.将一个二维数组存入sol文件
//2.二维数组如下:
/*var chapters:Array = new Array(10);
chapters[0] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[1] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[2] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[3] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[4] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[5] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[6] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[7] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[8] = [0, 0, 0, 0, 0, 0, 0, 0];
chapters[9] = [0, 0, 0, 0, 0, 0, 0, 0];*/
//3.ctrl+Enter测试本文件,然后点击输入-修改-输入-修改,反复这样的操作,输出一切正常;
//4.可以自己更改:soData.chapters[3][4]=0;来测试
//5.问题来了:使用.minerva 3.3.0打开test.sol文件,然后什么都不修改,直接点击"Save"按钮
//6.再试一下第三个步骤,看看输出还是不是正常?
//7.我的测试是不正常的,只修改其中一个数组时,竟然会影响其他数组,这应该是.minerva的一个bug

//MySharedObject.as文件代码:

package {
	import flash.net.SharedObject;
	/**
	 * 将数据写入共享对像
	 * @author zkl
	 * 2011-5-3 15:44
	 */
	public class MySharedObject {
		//实例化一个SharedObject对像
		public var so:SharedObject;
		/**
		 * 返回一个共享对像,指定文件名和路径
		 * @param	soFileName:文件名
		 * @param	path:文件路径
		 */
		public function MySharedObject(soFileName:String, soPath:String = "/"):void {
			//返回一个本地的永久共享对像,如果不存在则创建。
			if (so != null) so = null;
			so = SharedObject.getLocal(soFileName, soPath);
			//初始化数据
			if (so.size == 0) {
				var i:int, j:int;
				var objData:Object = { };
				var chapters:Array = new Array(10); //
				chapters[0] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[1] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[2] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[3] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[4] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[5] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[6] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[7] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[8] = [0, 0, 0, 0, 0, 0, 0, 0];
				chapters[9] = [0, 0, 0, 0, 0, 0, 0, 0];
				so.data.chapters = chapters;
				so.flush();
			}else {
				read();
			}
		}

		/**
		 * 返回文件大小 0表示文件不存在
		 */
		public function get size():uint {
			return so.size;
		}

		/**
		 * 写入数据
		 */
		public function write(obj:Object):void {
			for (var s:String in obj){
				so.data[s] = obj[s];
			}
			so.flush();
		}

		/**
		 * 读取数据
		 */
		public function read():Object {
			var objData:Object = new Object();
			for (var s:String in so.data){
				objData[s] = so.data[s];
			}
			return objData;
		}
		
	} //end class

} //end package


//fla测试文件:
var so:MySharedObject=new MySharedObject("test","/");
var i:int,j:int;
var soData:Object=so.read();
//将所有元素值改为1
for (i=0; i<10; i++) {
	for (j=0; j<8; j++) {
		soData.chapters[i][j]=1;
	}
}
so.write(soData);

//输出
traceBtn.addEventListener(MouseEvent.CLICK,traceHandler);
var n:int=0;
function traceHandler(e:MouseEvent):void {
	soData=so.read();
	trace("输出============================" + n++);
	for (i=0; i<10; i++) {
		trace(soData.chapters[i]);
	}
}
//修改
testBtn.addEventListener(MouseEvent.CLICK,testHandler);
function testHandler(e:MouseEvent):void {
	//1.使用.minerva打开test.sol,然后什么都不修改直接点“save”
	//2.这时再修改试试,看看修改其中一个值,会不会影响其他的值
	//修改一个值,试试它会影响哪些
	soData.chapters[3][4]=0;
	so.write(soData);
	soData=so.read();
	trace("修改后:");
	for (i=0; i<10; i++) {
		trace(soData.chapters[i]);
	}
}
分享到:
评论

相关推荐

    Minerva_whole_Minerva80_PLC_program_

    标题中的"Minerva_whole_Minerva80_PLC_program_"表明这是一个关于Minerva 80系统的完整PLC(可编程逻辑控制器)程序。Omron CPM2A是这个系统所使用的PLC型号,通常用于自动化控制设备,如工业生产线、机械设备等。...

    Python库 | pythondata_cpu_minerva-0.0.post172-py3.8.egg

    标题中的“Python库 | pythondata_cpu_minerva-0.0.post172-py3.8.egg”指的是一个特定的Python库,名为`pythondata_cpu_minerva`,其版本号为0.0.post172,适用于Python 3.8环境。这个库是以`.egg`格式提供的,`....

    cpp-Minerva一种快速和灵活的工具针对多GPU的深度学习

    总的来说,Minerva是一个强大的工具,可以帮助C++开发者在多GPU环境下高效地进行深度学习训练。通过掌握它的使用,开发者可以更有效地利用硬件资源,加速模型训练,为机器学习项目带来显著的效率提升。

    Python库 | minerva_lib-0.0.2-cp36-cp36m-manylinux1_x86_64.whl

    标题中的"Python库 | minerva_lib-0.0.2-cp36-cp36m-manylinux1_x86_64.whl"表明这是一个针对Python编程语言的库,名为"minerva_lib",其版本号为0.0.2。这个库是为Python 3.6编译的,并且适配的是`cp36m`(CPython ...

    minerva

    Minerva,这个名字在IT行业中可能是指一个特定的项目、软件或者工具。虽然提供的信息非常有限,我们可以基于“Shell”这个标签来推测Minerva可能与命令行界面或脚本语言相关。Shell通常指的是操作系统中用于交互式...

    minojeyam.github.io:Minerva的作品集

    【标题】"minojeyam.github.io:Minerva的作品集" 暗示这是一个个人作品展示网站,很可能是一个程序员或Web开发者Minerva用来呈现其项目、技能和经验的地方。这个标题提示我们,我们可以期待看到一些关于网页设计、...

    Minerva47.github.io

    【标题】"Minerva47.github.io" 是一个个人或组织在GitHub上托管的静态网站,通常用于展示项目、博客或者其他在线内容。这个名字可能代表了创建者的用户名或者是项目的代号。 【描述】"Minerva47.github.io" 的描述...

    minerva:Minerva:用于分析和可视化的客户端服务器服务

    介绍Minerva是一个复杂的地理空间应用程序和框架,旨在使用户能够从Web界面上载,可视化和分析小型到大型地理空间数据。 Minerva利用Web和数据库技术(例如WebGL和NoSQL(MongoDB)数据库)的进步。 它设计用于...

    Python库 | pythondata_cpu_minerva-0.0.post187-py3.9.egg

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:pythondata_cpu_minerva-0.0.post187-py3.9.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyPI 官网下载 | pythondata_cpu_minerva-0.0.post172-py3.8.egg

    资源来自pypi官网。 资源全名:pythondata_cpu_minerva-0.0.post172-py3.8.egg

    基于C和Kotlin的Minerva音频工具设计源码

    源码文件共计168个,其中包括56个Kotlin文件、23个C头文件、21个C源文件、19个XML配置文件、12个SO库文件、10个图片文件、7个图片文件、5个Gradle配置文件、3个Git忽略文件和2个Markdown文件。Minerva工具支持录音...

    Minerva:Minerva是IPFS的Drill存储插件

    现场演示: //www.datahub.pub/在密涅瓦的一个私有集群上托管。 请注意,它仍处于开发的早期阶段,总体稳定性和性能并不令人满意。 非常欢迎公关! 编译 依存关系 该项目取决于以下项目的分支: IPFS Java API: ...

    Minerva-crx插件

    共享过程知识是一个头疼的问题。 为客户,同事或培训创建过程文档的任何人都知道这方面的第一手资料。 Minerva使与任何人共享流程变得简单。 启用后,Minerva会捕获您执行的操作,自动创建文档,并将该过程折叠为带...

    minerva-author:为Minerva-Story创建映像和配置文件的工具

    使用Minerva作者 正在安装 git clone git@github.com:labsyspharm/minerva-author.git cd minerva-author git submodule update --init --recursive conda config --add channels conda-forge conda create --name ...

    Minerva-开源

    Minerva 是一个基于 phpBB 的开源内容管理和门户解决方案,它扩展了原版 phpBB 的功能,使其能够支持组件、块、模块和布局管理等高级特性。这个项目的主要目标是为用户提供一个灵活且强大的平台,以构建自定义化的...

    Python库 | pythondata_cpu_minerva-0.0.post223-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:pythondata_cpu_minerva-0.0.post223-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    java8看不到源码-minerva:密涅瓦

    您可以使用 Minerva 在 Web 上查看 AWS Athena 结构并执行对 AWS Athena 的查询。 安装 少构建 Admin LTE。 $ cd web $ grunt less 建造密涅瓦。 $ cd web 创建 config.json。 $ vi config.json { "base": ${API-GW-...

    mcgill-autoregistration:使用 Puppeteer 和 GCP 自动在 Minerva 上注册您

    McGill Minerva 自动注册该项目的目标是使用 AWS 或 GCP 等云服务并创建一个 cron 作业以便以特定时间间隔运行它们该脚本首先抓取VSB以确定该类中是否有可用的位置,然后它会继续注册。 如果您认为我在窃取您的 ...

Global site tag (gtag.js) - Google Analytics