该文件正在正确上传,我的 ProgessEvent.Progress 方法显示 100% 完成,但我的 Event.Complete 方法没有触发。我必须从服务器发回特定的东西吗?我只是发回一条成功消息。我没有收到任何错误。
我想我可以在进度方法达到 100% 时继续。发送数据并从服务器收到响应后,不应该触发 Event.Complete 方法吗?
* *更新:我的 Event.Complete 方法出现错误......
TypeError:错误 #1034:类型强制失败:无法将 flash.events::Event@1277971f1 转换为 flash.events.DataEvent。
*我通过将 onLoadComplete(event:DataEvent) 方法更改为 onLoadComplete(event:Event) 解决了这个问题。错误消失了,我的方法现在正在触发。当系统允许时,我会回答我自己的问题。
相关代码如下:
fileRef = new FileReference();
fileRef.addEventListener(Event.SELECT, onFileSelected);
fileRef.addEventListener(Event.COMPLETE, onUploadComplete);
fileRef.addEventListener(ProgressEvent.PROGRESS,onUploadProgress);
fileRef.addEventListener(IOErrorEvent.IO_ERROR, onUploadError);
fileRef.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadError);
private function onUploadProgress(event:ProgressEvent):void {
status = ((event.bytesLoaded * 100) / event.bytesTotal).toString();
}
private function onUploadComplete(event:DataEvent): void {
status = "Complete";
}
private function onUploadError(event:Event):void {
if (event is IOErrorEvent) {
Alert.show((event as IOErrorEvent).text.toString());
} else if (event is SecurityErrorEvent) {
Alert.show((event as SecurityErrorEvent).text.toString());
} else {
status = "Unknown error";
}
}