开始先说明几个知识点
1.Flash的URLLoader可以加载xml文件和部分文本文件(txt,ini)
2.AS 3.0的String类的部分函数用法
2.1 indexOf(String):类似c++中的find,主要是在字符串中找字符,成功找到就返回字符的位置
2.2 substr:和c++中的substr一样,用于截取字符串(貌似这个截取会使字符串前面多一位,最好一位一位输出看一下)
好了,话不多说,上代码
//引入我们需要的包
import flash.net.URLLoader;
import flash.events.Event;
var MAX_PARA:int=14;//keyword的数量,包含keyword
var Data:Array=new Array();//所有的数据集合
var loader:URLLoader=new URLLoader();//实例
//举个例子,例如我想读ini文件中的Port配置
var Port:int;
//把数据转换成数组
function LoadFile(bStr:String):void
{
//trace(bStr.length);
//一行一行找换行符
for(var i:int =0;i<MAX_PARA;i++)
{
var pos:int=bStr.indexOf("\r\n");
if(pos>0)
{
Data.push(bStr.substr(0,pos));
bStr=bStr.substr(pos+1);
}
}
//trace(Data.length);
for(var j:int =0;j<Data.length;j++)
{
//trace(Data[j]);
var bKeyLine=Data[j].toString();
//trace(bKeyLine,"Port");
Analysis(bKeyLine,"Port");
}
}
//读取所有的数据
loader.addEventListener(Event.COMPLETE,onComplete);
loader.load(new URLRequest("Para.ini"));
function onComplete(e:Event):void
{
//trace(loader.data);
var bStr:String=loader.data;
LoadFile(bStr);
}
//对数据进行分析找到,我们要找的key
function Analysis(keyLine:String,key:String)
{
var pos:int=keyLine.indexOf("=");
if(pos<1)
{
return;
}
///
//这里重点说一下,开始截取的字符串的前面老是有一位空格,无奈换成1,pos-1
var tmpKey:String=keyLine.substr(1,pos-1);
trace(tmpKey);
trace(tmpKey.length);
//trace(key.length);
if("Port"==tmpKey)
{
Port=int(keyLine.substr(pos+1));
trace(Port);
}
}