【问题标题】:Flash Air 3.2 FileStream resulting 'undefined'Flash Air 3.2 FileStream 导致“未定义”
【发布时间】:2017-07-19 22:05:19
【问题描述】:

我正在使用 Flash Air 3.2(旧的,我知道),我试图从使用 FileStream 读取文本文件开始。我找到的代码找到了文件,并且我已经在文件中放入了文本,但是每当我尝试运行代码时,它都会返回“未定义”。这是我的代码:

import flash.filesystem.*
import flash.net.*
import flash.utils.ByteArray;
import flash.events.*

var myFile:File = File.applicationStorageDirectory.resolvePath("test.txt"); 
var myFileStream:FileStream = new FileStream(); 
myFileStream.addEventListener(Event.COMPLETE, completeHandler); 
myFileStream.openAsync(myFile, FileMode.READ); 
var bytes:ByteArray = new ByteArray(); 

function completeHandler(event:Event):void  
{ 
    myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); 
    trace(myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable));
}

非常感谢任何帮助!

【问题讨论】:

    标签: actionscript-3 flash air


    【解决方案1】:

    因为FileStreamreadBytes 方法的返回类型为void,所以您会得到未定义。从该方法读取的字节被放入您传递给它的字节数组中,而不是直接从该方法返回。

    myFileStream.readBytes(bytes, 0, myFileStream.bytesAvailable); //this returns void/undefined by design regardless of the contents of bytes
    trace(bytes); //this will trace the byte array object that was populated with the above line
    

    如果你只是想读取一个文本文件,你应该可以使用快捷方式:

    myFileStream.readUTF();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-05
      • 2017-06-16
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多