Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何在AdobeAIR中从文件流中获取bytearray?_Flash_File_Actionscript_Air_Bytearray - Fatal编程技术网

Flash 如何在AdobeAIR中从文件流中获取bytearray?

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

我阅读有限(小-15-500MB文件)。 我需要能够将所有文件字节放入一个字节数组中。 所以我有一个函数:

        [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。