我需要在AS3.0中使用FileReference Class的功能。但是,我不了解需要使用ByteArray的部分。据我了解,FileReference只需要选定的文件,它应该自动存储数据。但是按照以下过程,再次需要第二步,其中fileReference数据被分配给ByteArray类型的变量,并再次加载。这需要的第二步是什么?为什么数据不会存储在一个步骤中?
private function fileReference_SELECT(e:Event):void
{
fileRef_Fr.removeEventListener(Event.SELECT, fileRef_Fr_SELECT);
fileRef_Fr.addEventListener(Event.COMPLETE, fileReference_COMPLETE);
fileRef_Fr.load();
}
private function fileReference_COMPLETE(e:Event):void
{
fileRef_Fr.removeEventListener(Event.COMPLETE, fileRef_Fr_load_COMPLETE);
var rawBytes:ByteArray = fileRef_Fr.data;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaderInfo_COMPLETE)
loader.loadBytes(rawBytes);
}
答案 0 :(得分:2)
第一步只将文件中的原始字节加载到内存中。第二步读取/解析/将这些字节转换为Bitmap
,Sound
,MovieClip
或文件中包含的任何内容。