Flash 如何在AdobeAIR中从文件流中获取bytearray?
我阅读有限(小-15-500MB文件)。 我需要能够将所有文件字节放入一个字节数组中。 所以我有一个函数:Flash 如何在AdobeAIR中从文件流中获取bytearray?,flash,file,actionscript,air,bytearray,Flash,File,Actionscript,Air,Bytearray,我阅读有限(小-15-500MB文件)。 我需要能够将所有文件字节放入一个字节数组中。 所以我有一个函数: [Bindable] public var ba:ByteArray = new ByteArray; //.... code ....// protected function fileOpenSelected(event:Event):void { currentFile = eve
[Bindable]
public var ba:ByteArray = new ByteArray;
//.... code ....//
protected function fileOpenSelected(event:Event):void
{
currentFile = event.target as File;
stream = new FileStream();
stream.openAsync(currentFile, FileMode.READ);
stream.readBytes(ba);
stream.close();
MyFunction(ba);
}
但它不起作用=(-给我错误:错误#2030:遇到文件结尾
如何从流中获取完整的字节数组以将其用作普通的字节数组?文件流的关键不在于您没有普通的
字节数组,而是异步读取?它实现了,只要字节可用
大于0,您就可以从中读取
在每个进度事件中,您只需将字节读入一个输出ByteArray
,一旦获得一个完整的事件,就可以使用它
格里茨
back2dos我在查阅了文档一段时间后终于明白了这一点。唷
在我的例子中,我必须为我正在使用的类读取一个wav文件作为字节数组,这样我就可以在公共范围内按需使用它
var file:File = File.applicationDirectory.resolvePath("blip.wav");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var bytes:ByteArray = new ByteArray
fileStream.readBytes(bytes);
fileStream.close();
希望这对您的帮助和对我的帮助一样大。我已经测试过它并确认它可以工作。但是我想要我的bytaarray(-我的类使用它!)好吧,要么使用我描述的方法,要么尝试File::load()
然后访问文件::数据
被否决,因为要么您描述的是等待event.complete并将数据传递给事件处理程序的旧方法,要么这句话的措辞相当混乱。从文件流中获取ByteArray应该很容易(我们中的一些人确实需要)不应该是<代码>新BytRayRay](<代码)>我从2014号开始就离开AS3了,但是我知道这是按照预期运行的。而且,我知道你从C++中的空构造函数调用中省略括号,尽管我记不清这个规则是否被转入AS3。