Apache flex FileReference.load()不属于例外情况

Apache flex FileReference.load()不属于例外情况,apache-flex,actionscript-3,ria,Apache Flex,Actionscript 3,Ria,我使用了Flash player 10和Flex SDK 3.4。代码如下: // Following comes callbacks function imageLoadOpenCallback(evt:Event):void { trace("in--open"); } function imageLoadCompleteCallback(evt:Event):void { trace("in--load"); var fr:FileReference = evt.

我使用了Flash player 10和Flex SDK 3.4。代码如下:

// Following comes callbacks
function imageLoadOpenCallback(evt:Event):void
{
    trace("in--open");
}

function imageLoadCompleteCallback(evt:Event):void
{
    trace("in--load");
    var fr:FileReference = evt.target as FileReference;
    trace(fr.data);
}

function imageLoadErrorCallback(evt:IOErrorEvent):void
{
    trace("in--ioerror");
}

function imageSelectCancelCallback(evt:Event):void
{
    trace("in cancel");
}

function imageSelectCallback(evt:Event):void
{
    trace("in -- select");
    for (var i:int=0; i<frl.fileList.length; i++)
    {

        frl.fileList[i].addEventListener(Event.OPEN, imageLoadOpenCallback);
        frl.fileList[i].addEventListener(Event.COMPLETE, imageLoadCompleteCallback);
        frl.fileList[i].addEventListener(IOErrorEvent.IO_ERROR, imageLoadErrorCallback);
        frl.fileList[i].load();
        trace(frl.fileList[i]);
        trace(frl.fileList[i].creationDate);
        trace(frl.fileList[i].creator);
        trace(frl.fileList[i].data);
        trace(frl.fileList[i].name);
    }   
}


// Following comes UI handlers
function onAddPictures():void
{
    var imageFilter:FileFilter = new FileFilter("Images", "*.jpg;*.png");
    frl.addEventListener(Event.SELECT, imageSelectCallback);
    frl.addEventListener(Event.CANCEL, imageSelectCancelCallback);
    frl.browse([imageFilter]);
}
//下面是回调
函数imageLoadOpenCallback(evt:Event):void
{
跟踪(“处于打开状态”);
}
函数imageLoadCompleteCallback(evt:Event):void
{
跟踪(“加载”);
var fr:FileReference=evt.target作为FileReference;
跟踪(fr.data);
}
函数imageLoadErrorCallback(evt:IOErrorEvent):void
{
跟踪(“in--ioerror”);
}
函数imageSelectCancelCallback(evt:Event):void
{
跟踪(“取消”);
}
函数imageSelectCallback(evt:Event):void
{
跟踪(“in--select”);

对于(var i:int=0;i使用
FileReferenceList
而不是
FileReference
的主要原因是如果您需要一次上载多个文件。如果您只允许一次上载一个文件,只需使用
FileReference

一些说明:
imageSelectCallback()
,而不是
imageSelectCancelCallback()
,应该在您在文件浏览器中选择一些文件并单击“确定”时调用。
imageSelectCancelCallback()
只有在单击“取消”时才会调用

除此之外,我从未使用过
load()
API,但我确实使用了
upload(URLRequest)
API。我不确定您的用例是什么,但是如果您需要将图像上载到服务器,您应该使用
upload()
方法


说到上传事件,我在收听
Event.COMPLETE
事件时遇到了一些可靠性问题,因此收听
DataEvent.upload\u COMPLETE\u DATA
实际上我在收听
DataEvent.upload\u COMPLETE\u DATA

时得到了更好的结果。如果您需要上传多个一次上传一个文件。如果您只想一次上传一个文件,只需使用
FileReference

一些说明:
imageSelectCallback()
,而不是
imageSelectCancelCallback()
,应该在您在文件浏览器中选择一些文件并单击“确定”时调用。
imageSelectCancelCallback()
只有在单击“取消”时才会调用

除此之外,我从未使用过
load()
API,但我确实使用了
upload(URLRequest)
API。我不确定您的用例是什么,但是如果您需要将图像上载到服务器,您应该使用
upload()
方法


说到上传事件,我在收听
Event.COMPLETE
事件时遇到了一些可靠性问题,因此收听
DataEvent.upload\u COMPLETE\u DATA
时,我实际上得到了更好的结果。请确保在flex的编译器设置中,至少有10.0.0用于“使用特定版本”.

确保在flex的编译器设置中,至少有10.0.0用于“使用特定版本”。

在执行
文件列表[i].load()时,
文件引用列表中的
文件引用对象不会在空中触发完整事件
。在Flex项目中,它可以正常工作。Adobe没有对此错误报告做出适当的响应。

在空中,
fileReferenceList
中的
fileReferenceList
对象在执行
fileList[i].load()时不会触发完整事件
。在Flex项目中,它工作正常。Adobe没有对此错误报告做出适当的响应。

能否请您正确格式化您的代码?复制到我的项目中的上述代码的功能与我预期的完全相同——单击“确定”时调用“选择”处理程序,在加载每个文件后调用“加载”处理程序。可以吗请正确格式化您的代码?复制到我的项目中的上述代码的功能与我预期的完全相同--单击“确定”时调用“选择”处理程序,在加载每个文件后调用“加载”处理程序。