【问题标题】:Actionscript-3 URLLoader: ProgressEvent doesn't dispatchActionscript-3 URLLoader:ProgressEvent 不调度
【发布时间】:2010-11-27 03:37:29
【问题描述】:

我在 URLLoader 的帮助下将一些数据上传到我的服务器,并监听 ProgressEvent,但它没有调度。没有错误,文件上传成功。为什么不行?

代码如下:

//setup
urlLoader.addEventListener(ProgressEvent.PROGRESS, onProgress);

//listen
private function onProgress(e:ProgressEvent):void {
    trace(e.bytesLoaded + ' ' + e.bytesTotal);
}

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    我迟到了这个答案,但看到我自己是如何遇到它的,我想我会加两分钱:

    您没有看到任何 POST/上传进度事件的原因是 URLLoader 没有为上传发送进度事件(或更改“bytesLoaded”属性)。悲伤,但真实。

    【讨论】:

      【解决方案2】:

      实际调用 load() 方法时不会显示。应该是:

       //setup
       urlLoader.addEventListener(ProgressEvent.PROGRESS, onProgress);
       urlLoader.load( new URLRequest( url ) );
      
      
       //listen
       private function onProgress(e:ProgressEvent):void {
          trace(e.bytesLoaded + ' ' + e.bytesTotal);
       }
      

      【讨论】:

        【解决方案3】:

        我认为 urlLoader 是一个加载器对象实例?如果是这样,您需要将 eventListener 添加到 contentLoaderInfo 属性中。

        urlLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
        

        【讨论】:

        • aesphere,那个 urlLoader 是 URLLoader 类的一个实例,它似乎有一个错误......
        • URLLoader 不继承自 Loader 类,它继承自 EventDispatcher
        • 好吧,我的错,当初始实例未显示时,很难看到正在使用哪些实例,尽管我想我可以从 urlLoader 中得到提示。话虽如此,有些人确实倾向于将他们的加载器实例变量命名为 urlLoader 有时......
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        • 2011-04-05
        • 2010-10-03
        • 2011-03-26
        • 1970-01-01
        相关资源
        最近更新 更多