Apache flex FileReference.load()不属于例外情况
我使用了Flash player 10和Flex SDK 3.4。代码如下: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.
// 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没有对此错误报告做出适当的响应。能否请您正确格式化您的代码?复制到我的项目中的上述代码的功能与我预期的完全相同——单击“确定”时调用“选择”处理程序,在加载每个文件后调用“加载”处理程序。可以吗请正确格式化您的代码?复制到我的项目中的上述代码的功能与我预期的完全相同--单击“确定”时调用“选择”处理程序,在加载每个文件后调用“加载”处理程序。