Flash读写xml

目录

 一、目的

1、想:在flash中写xml文件

二、参考

1、

三、操作:Flash读写xml

1、版本是:air的,代码是as3

2、资源使用

3、xml文件设置

4、代码


 

 一、目的

1、想:在flash中写xml文件

 

二、参考

1、

 

三、操作:Flash读写xml

1、版本是:air的,代码是as3

2、资源使用

3、xml文件设置

注意:

1、数量要少于下面的坐标数量

2、写入后,系统默认的xml阅读器看这个文件分行是乱的,我使用notepad++查看xml文件时候是按照顺序排列的

3、在里面注释没有用,写入后注释都没有了

4、xml文件只能是和flash一个路径,不能是上一层或者下一层距离

5、此项目只能从flash中运行,exe、swf都运行不了

4、代码

import flash.events.KeyboardEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.display.StageDisplayState;

//此全屏模式可以按键输入
this.stage.displayState=StageDisplayState.FULL_SCREEN_INTERACTIVE;

//xml信息
var myXML:XML = new XML  ;
var myXMLURL:URLRequest = new URLRequest("config_flash.xml");
var myLoader:URLLoader = new URLLoader(myXMLURL);
var fs:FileStream;
var file:File;
var xmlPath:String;
myLoader.addEventListener(Event.COMPLETE, LoadPos);


//读写的物体位置
var InsectNum:int = 0;
var Insect:Array = new Array();
var PosX:Array = new Array();
var PosY:Array = new Array();
var CurrentIns:int = 0;

Init();

function Init()
{
	stage.addEventListener(KeyboardEvent.KEY_DOWN,Down);
}

function LoadPos(e:Event):void
{
	myXML = XML(myLoader.data);
	InsectNum = myXML.num;
	AddInsect();
}
function AddInsect():void
{
	for (var i:int = 0; i<InsectNum; i++)
	{
		var Pos:Object = myXML.pos[i];
		PosX[i] = int(Pos. @ x);
		PosY[i] = int(Pos. @ y);
		var aa:YaChong = new YaChong();
		Insect.push(aa);
		Insect[i].rect.visible = false;
	}
	addChild(Insect[0]);
	Insect[0].x = PosX[0];
	Insect[0].y = PosY[0];
	Insect[CurrentIns].rect.visible = true;
}

function Down(e:KeyboardEvent):void
{
	switch (e.keyCode)
	{
		case 37 :
			Insect[CurrentIns].x--;
			break;
		case 38 :
			Insect[CurrentIns].y--;
			break;
		case 39 :
			Insect[CurrentIns].x++;
			break;
		case 40 :
			Insect[CurrentIns].y++;
			break;
		case 83 :
			if (CurrentIns < InsectNum)
			{
				SaveXML();
			}

			break;
		case 90 :
			if (CurrentIns > 0)
			{
				Insect[CurrentIns].rect.visible = false;
				CurrentIns--;
				Insect[CurrentIns].rect.visible = true;
			}
			break;
		case 88 :
			if (CurrentIns<InsectNum-1)
			{
				Insect[CurrentIns].rect.visible = false;
				CurrentIns++;
				Insect[CurrentIns].rect.visible = true;
			}
			break;

	}
}


function SaveXML():void
{
	xmlPath = "config_flash.xml";
	fs = new FileStream  ;//使用 FileStream 对象读取和写入文件
	file = new File(File.applicationDirectory.resolvePath(xmlPath).nativePath);
	fs.open(file,FileMode.READ);//以同步方式打开 FileStream 对象,指向由 file 参数指定的文件。
	var _xml:XML = XML(fs.readUTFBytes(fs.bytesAvailable)); //获取xml内容
	PosX[CurrentIns] = Insect[CurrentIns].x;
	PosY[CurrentIns] = Insect[CurrentIns].y;
	_xml.pos[CurrentIns]. @ x = PosX[CurrentIns].toString();
	_xml.pos[CurrentIns]. @ y = PosY[CurrentIns].toString();
	fs.open(file,FileMode.WRITE);//重新以写方式打开文件,目的在于清除原有的内容
	fs.writeUTFBytes(_xml); //写入修改过后的XML
	fs.close();
	if (CurrentIns<InsectNum-1)
	{
		Insect[CurrentIns].rect.visible = false;
		CurrentIns++;
		addChild(Insect[CurrentIns]);
		Insect[CurrentIns].x = PosX[CurrentIns];
		Insect[CurrentIns].y = PosY[CurrentIns];
		Insect[CurrentIns].rect.visible = true;
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值