在ActionScript Moblie iOS App中读取文本文件

时间:2013-05-01 16:47:48

标签: ios actionscript-3

我正在尝试从ActionScript Mobile Project中的文本文件中读取单词。然后将每个Word存储在一个数组中。这在AIR IOS模拟器期间工作正常,但现在我在Ipad上调试并且它无法工作......

错误#2044:未处理的ioError: text =错误#2032:流错误。网址:app:/var/mobile/Applications/13FB44C5-E2EB-421F-9EF8-CB1290B75DD8/Library/Application%20Support/com.mcmami3.word/Local%20Store/media/words5.txt

private function slangLoadedThree(event:Object):void {

        slangContentThree = event.target.data;
        slangArrayThree= slangContentThree.split("\n");

    }



//five letter load
            var xmlFileFive:File=new File(File.applicationStorageDirectory.nativePath).resolvePath("media/words5.txt");
            myLoaderThree.load(new URLRequest(xmlFileFive.nativePath));
            myLoader.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandlerAsyncErrorEvent);
            myLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandlerIOErrorEvent);
            myLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandlerSecurityErrorEvent);
            myLoaderThree.addEventListener(Event.COMPLETE, slangLoadedThree);

4 个答案:

答案 0 :(得分:1)

如果只有一个文件,您可以像嵌入图像一样嵌入txt文件。关于如何找到的方向:

Flex3: Load contents of an embedded text file into a variable

或在这里:

How do I embed static text in actionscript 3?

答案 1 :(得分:1)

尝试以下方法之一:

myLoaderThree = new URLLoader();
myLoaderThree.addEventListener(Event.COMPLETE, processText, false, 0, true);
myLoaderThree.load(new URLRequest("media/words5.txt"));

var xmlFileFive:File = File.applicationStorageDirectory.resolvePath("media/words5.txt");
var _urlRequest:URLRequest = new URLRequest(f.url);
myLoader = new Loader();
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, processText, false, 0, true);
myLoader.load(_urlRequest);

两者都可以使用:

private function processText(e:Event):void {
        trace(e.target.data);
}

答案 2 :(得分:0)

发布应用时是否包含媒体文件夹和words5.txt文件?

即。在Flash Pro中>发布设置>单击AIR版本下拉框旁边的扳手按钮>在“常规”选项卡中,您有一个“包含的文件”区域。您应该在此处添加媒体文件夹。

答案 3 :(得分:0)

因为我只是通过读取文件来创建数组,所以我也可以跳过读取文件并一次创建一个元素。当然我并不是说在Flash Builder中输入array [0] array [1]。但是我编写了一个单独的C ++程序,它将读取我的WORD文件,然后写入另一个文件“slangArrayOne [0] =”WORD“”并为每个单词索引数组。然后,我接受该文件的输出,即...... slangArrayOne [0] =“WORD”; slangArrayOne [1] =“WORD2”;并将它们放在Action Script Class中。

我现在可以在iPad上使用我的Word数据进行文字游戏......这可能是一个更好的方式,但我是新手。还有什么区别是在App加载到populate期间读取文件和大小为X的数组相比,只是在程序中填充了X大小的数组?

#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{

 cout<<"Hello";
 cin.ignore();   


  string line;
  int x = 0;
  ifstream myfile ("FiveLetterWords.txt");
  // open a file in write mode.
   ofstream outfile;
   outfile.open("FiveLetterWordsNew.txt");


  if (myfile.is_open())
  {
    while ( myfile.good() )
    {
      getline (myfile,line);
      cout << "slangArrayFour["<<x<<"] = "<< "\""<< line <<"\"" <<"\n";
      outfile<< "slangArrayFour["<<x<<"] = "<< "\""<< line <<"\"" <<";"<<"\n";
      x++;
    }
    myfile.close();
  }

  else cout << "Unable to open file"; 



 cin.ignore();