我不希望你为我做所有工作,但我需要一些信息,因为我对此并不熟悉。
我已经从网址加载了文件并将其保存到字符串中:
function LoadData(e:Event):void
{
var datalanes:String = (e.target.data);
}
该文件包含某些数据。让我们说它看起来像这样:
"
Width: 10 Height: 15 Other: 4
"
现在我希望代码将所有数据都转换为字符串。喜欢 var object.W ="宽度"从文件 var object.H =" Height"来自档案
任何人都可以帮助我吗?我试着看看adobe.help,但这对我来说并不是很了解。
答案 0 :(得分:1)
最好是使用JSON或XML,但是如果你这样做,那么就利用String解析功能。例如,String可以轻松拆分。鉴于此:
width:50|||height:50|||other:4
您可以轻松获得以下所有内容:
var data:String = "width:50|||height:50|||other:4";
var parts:Array = data.split("|||");
var width:Number = Number(String(parts[0]).split(":")[1]);
var height:Number = Number(String(parts[1]).split(":")[1]);
var other:Number = Number(String(parts[2]).split(":")[1]);
那就是它。
答案 1 :(得分:1)
我同意CyanAngel。使用标准格式。在AS3中,JSON非常容易解析。
var json:String = '{"width":10,"height":15,"other":4}';
var obj:Object = JSON.parse(json);
这就是你所要做的一切,你可以通过obj.width
访问它。如果必须使用您发布的格式,则您需要将String#split
与某些RegEx一起使用。
这是未经测试的,但我相信这应该可以帮到你。
var s:String = 'Width: 10 Height: 15 Other: 4';
var a:Array = s.split(/(?<=\d)\s*(?=[a-zA-Z])/gm);
然后你可以更进一步解析数据:
var obj:Object = {};
for (var i:int = 0; i < a.length; i++) {
var key:String = a[i].match(/^\W*/)[0]; // this is an error prone way to do this. Should always check if index 0 exists
var value:String = a[i].match(/(?<=:\s)\d*$/)[0];
obj[key] = value;
}
再次,未经测试。虽然我确实确保RegEx是正确的。希望至少可以帮助您指明正确的方向