1

我能在 Actionsript 3.0 中找到有关 URLLoader 对象的所有信息都涉及加载 XML 文件,我不想这样做。我正在尝试逐行加载要解析的 .txt 文件,每行用逗号分隔。任何人都知道这样做的方法或我可以找到一些关于如何做到这一点的信息的地方?谢谢!

4

3 回答 3

2

查看String 的 split()方法作为开始。它根据分隔符将字符串拆分为数组。在您的情况下,您可以将每一行作为使用 split() 和逗号字符返回的数组的元素来访问。

例如

var csvLoader:URLLoader = new URLLoader(new URLRequest('yourFile.csv'));
csvLoader.addEventListener(Event.COMPLETE, csvLoaded);

function csvLoaded(event:Event):void{
   var lines:Array = String(event.target.data).split(',');
   var linesNum:int = lines.length;
   for(var i:int = 0 ; i < linesNum; i++){
      trace('line ' + i + ': ' + lines[i]);
   }
}

您可以使用 event.target.data.split(','),我使用 String 来使 split() 的起源显而易见。

@dhdean 的教程很酷,记住是as2.0,所以加载文件略有不同,但是在as2.0/as3.0 中解析字符串应该差不多

根据您对 as3.0 的舒适程度,您可能想看看csvlib

HTH,乔治

于 2010-04-21T21:17:03.727 回答
1

尝试这个:

http://www.tinypixels.co.uk/products/flash/SimpleCsvLoader.php

于 2010-04-21T20:59:45.733 回答
1

对于您看到的适用于 XML 文件的任何示例,您只需删除显示“new XML()”的行

例如,在此示例中位于http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/URLLoader.html#load()

您有以下示例:

   private function loaderCompleteHandler(event:Event):void {

            try {
                externalXML = new XML(loader.data);
                readNodes(externalXML);    
            } catch (e:TypeError) {
                trace("Could not parse the XML file.");
            }
    }

您的文本数据在变量“loader.data”中

使用

var arr:Array = loader.data.split(",");

将返回一个以逗号分隔的数组。

于 2010-04-21T21:34:08.030 回答