我只是开发一个Flex移动应用程序,需要显示的图像的上传进度。进度事件中的Flex 4.6移动应用程序
的代码是:
protected function upload(ba:ByteArray, fileName:String = null):void {
if(fileName == null) {
var now:Date = new Date();
fileName = "IMG" + now.fullYear + now.month +now.day +
now.hours + now.minutes + now.seconds + ".jpg";
}
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
var wrapper:URLRequestWrapper = new URLRequestWrapper(ba, fileName, null, params);
wrapper.url = "http://www.the_url_to_upload.com/php_content/upload_image.php";
loader.addEventListener(Event.COMPLETE, completeImageHandler);
loader.addEventListener(ProgressEvent.PROGRESS, imageProgress);
loader.addEventListener(IOErrorEvent.IO_ERROR, errorImageUploading);
loader.load(wrapper.request);
}
private function imageProgress(evt:ProgressEvent):void {
var pcent:Number=Math.floor(evt.bytesLoaded/evt.bytesTotal*100);
label_upload.text = pcent+"%";
}
我有一个名为“label_upload”标签中要显示的进度时,文件上传百分比。
事实是,所有的工作正常,但进展事件不会改变任何东西。始终显示0%。
我猜不出我的错。
谢谢。
不能看到与代码的任何问题。 imageProgress方法是否被调用?添加“trace(evt.bytesLoaded);”对其进行确认 – 2013-02-12 16:58:37
我认为它不会被调用,因为label_upload.text肯定会在文本中更新。所有相同的我会跟踪它。 – Apalabrados 2013-02-12 18:17:22
它没有更新,所以imageProgress事件从不被调用。 – Apalabrados 2013-02-13 20:24:26