Actionscript 3 什么';s在FileReference类中使用loadBtyes()
我需要在AS3.0中使用FileReference类的功能。然而,我不明白有一部分需要使用ByteArray。据我所知,FileReference只需要选定的文件,它应该自动存储数据。但是按照下面的过程,再次需要执行第二步,其中fileReference数据被分配给ByteArray类型的变量,并再次加载。第二步需要做什么。为什么数据不存储在单个步骤中Actionscript 3 什么';s在FileReference类中使用loadBtyes(),actionscript-3,flash,apache-flex,Actionscript 3,Flash,Apache Flex,我需要在AS3.0中使用FileReference类的功能。然而,我不明白有一部分需要使用ByteArray。据我所知,FileReference只需要选定的文件,它应该自动存储数据。但是按照下面的过程,再次需要执行第二步,其中fileReference数据被分配给ByteArray类型的变量,并再次加载。第二步需要做什么。为什么数据不存储在单个步骤中 private function fileReference_SELECT(e:Event):void {
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);
}
第一步只是将原始字节从文件加载到内存中。第二步读取/解析/转换这些字节为
位图
、声音
、MovieClip
或文件中包含的任何内容。但是,为什么FileReference类不自动执行此操作?他们是否有不需要第二步的地方?(我认为,第二步总是很重要的)。实际上,这段代码中有一些奇怪的地方。FileReference会自动执行此操作,如行var rawBytes:ByteArray=fileRef\u Fr.data中所示代码>。在这之后,它看起来更像是urloader
用法的剩余部分。我认为它不应该在那里。