`
wsliujian
  • 浏览: 95108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

as3中ProgressEvent的bytesTotal始终为0

阅读更多
as3中ProgressEvent的bytesTotal始终为0

遇到很奇怪的问题,as3中监听资源下载的PROGRESS事件(ProgressEvent.PROGRESS),它的bytesLoaded属性倒是正常的,但bytesTotal属性却始终为0,结果是导致了得到的下载比率为无穷大(Infinity)
evt.bytesLoaded / evt.bytesTotal  <==> evt.bytesLoaded  / 0

在网上搜索了一下,有以下三种情况导致bytesTotal始终为0:
1、如果将进度事件调度/附加到某个 Socket 对象,则 bytesTotal 将始终为 0,参考ProgressEvent的事件对象>>
2、从php里动态加载内容导致的bytesLoaded始终为0,解决方案>>
3、web服务器开启gzip导致
如果是gzip开启问题导致的,一般的的解决办法是修改PHP文件
<?php if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start(); ?>

因开发环境是在Windows下,而web服务器使用的是nginx,然后查看了一下nginx.conf的配置,发现gzip是开启的,但只是对以下的文件类型才进行压缩
gzip_types       text/plain application/x-javascript text/css application/xml image/jpeg image/gif image/png;
而swf的文件类型应该是application/x-shockwave-flash,即使如此依然不行。

然后清空了缓存再试,起作用了,无穷大不再存在了。
而为何开启gzip会影响到swf获取byteTotal呢?nginx并未对swf文件作特殊的处理啊!

我用httpwatch抓取swf的下载,发现其http header在gzip开启的情况下还是有的,这种现象很难解释了,gzip对swf的加载起到了什么影响?难道正如那篇文章所讲的,返回的http header里没有Content-Length属性?而我抓到的却是有的…

不管怎么样,问题是解决了,可是疑惑却加重了…
分享到:
评论

相关推荐

    用as3写的加载进度条

    动态加载是AS3中一个重要的概念,它允许程序在运行时根据需要加载资源,如图片、音频或XML数据。使用`Loader`类和`URLLoader`类可以实现这一功能。在进度条应用中,我们需要监听加载事件,如`ProgressEvent....

    AS3超值范例之进度条代码.rar

    这个经典模板范例对于理解和掌握AS3中的资源加载和进度控制非常有帮助,无论是初学者还是经验丰富的开发者,都能从中受益。通过实践和理解这样的代码,你可以更好地处理复杂的项目,提供更流畅的用户体验。

    flash actionscript3 纯AS3代码_资源加载进度条.rar

    在AS3中,可以通过监听`ProgressEvent.PROGRESS`事件,获取到`event.bytesLoaded`和`event.bytesTotal`,它们分别表示已加载的字节数和总字节数。利用这两个值计算当前加载进度,并更新填充条的尺寸。 5. **显示...

    AS3预加载SWF实例源码

    在AS3中,预加载通常涉及到以下几个关键知识点: 1. **事件监听器**:AS3中的事件驱动模型是预加载的核心。你需要监听`Event.ENTER_FRAME`和`ProgressEvent.PROGRESS`事件来跟踪加载进度。`ENTER_FRAME`事件在每一...

    Flex actionscript3 as3加载文件资源进度条.rar

    Loader类是AS3中负责加载不同类型的媒体资源,包括图像、SWF、XML等的核心类。它有一个contentLoaderInfo属性,该属性包含了关于加载过程的信息,如总字节数、已加载字节数以及加载进度。 要创建一个进度条,我们...

    AS3本地录音及回放保存

    在AS3中,我们可以使用`Microphone`类来访问用户的麦克风设备,并实现录音功能。首先,我们需要获取用户麦克风的实例: ```actionscript var microphone:Microphone = Microphone.getMicrophone(); ``` 接着,设置...

    AS3头像上传

    在AS3中,FileReference类用于处理文件选择和上传。首先,我们需要创建一个FileReference对象,并监听它的“select”事件,当用户选择文件后触发该事件。 ```actionscript var fileRef:FileReference = new ...

    AS3 loading 外部文件

    在AS3中,加载外部文件涉及到从服务器或本地磁盘读取并解析数据,将其转换为可以在应用程序中使用的格式。这包括但不限于图像、音频、视频、文本文件、SWF文件等。通过加载外部文件,开发者能够动态地更新内容,提高...

    as3声音架构的理解.pdf

    本文将深入探讨AS3声音架构的设计理念及其核心组件的功能特性,帮助读者更好地理解和应用AS3中的声音处理技术。 #### 声音架构概述 AS3中的声音架构被设计成高度模块化和可扩展的,旨在简化开发者在创建多媒体应用...

    flash actionscript3 as3 BulkLoader多资源加载队列的用法.ziploading加载队列bulk_loader

    BulkLoader是AS3中的一个第三方库,专门用于管理批量资源的加载,从而提高性能和用户体验。 BulkLoader的用法主要包括以下几个关键步骤: 1. **导入库**:首先,你需要将BulkLoader库引入到你的项目中。这通常...

    Flex实现Ftp上传

    在Flex中实现FTP上传,我们主要依靠AS3(ActionScript 3)的类库,如Flash的net模块中的`flash.net.FTP`类,该类提供了FTP客户端的功能。 首先,我们需要创建一个Flex项目,并引入相关的库。在Flex Builder或使用...

    完整的文件上传功能。File Reference实现

    `FileReference`是AS3中的一个核心类,它允许用户与本地文件系统进行交互,比如选择、读取、保存和上传文件。在Flex项目中,我们可以利用MXML和AS3代码结合的方式来实现这一功能。 **1. 单文件上传** 首先,我们...

    flash 常用代码

    在给定的文件信息中,我们看到了一段与Flash和AS3.0相关的代码,这段代码主要涉及了事件监听、SWF文件加载、进度处理以及动画控制等几个关键的知识点。 ### 1. 事件监听 在Flash开发中,事件监听是实现用户交互的...

    第十一节 Loader加载类.docx

    在文档中提到,可以通过修改子SWF的类来接收外部传入的参数,这展示了AS3中更加安全和可控的通信机制。 Loader类不仅用于加载SWF和图像,还可以加载其他类型的数据,如XML或文本文件,这在构建动态内容和数据驱动的...

    动态加载图片

    在IT行业中,动态加载图片是一项基础且重要的技术,特别是在网页设计、游戏开发或者移动...在实际项目中,动态加载图片不仅可以优化页面加载速度,还能提高用户体验,特别是在处理大量图片或响应式设计时显得尤为重要。

    flash进度条制作

    3. **Loader类**:在AS3中,`Loader`类用于加载外部资源,如SWF、图片或音频文件。我们可以利用`Loader`类的`contentLoaderInfo`属性来获取加载的进度信息。 4. **事件监听**:使用`addEventListener`方法添加`...

    Flash课件制作教程-加载SWF文件

    1. **创建Loader对象**:在AS3中,你需要创建一个Loader类的实例,它是负责加载各种类型内容的对象。例如: ```actionscript var loader:Loader = new Loader(); ``` 2. **指定加载目标**:使用Loader的`load()`...

    百分比flash加载源代码

    1. **Loader类**:这是AS3中的核心类,用于加载各种类型的内容,如图片、音频、视频或SWF文件。通过创建Loader对象,我们可以指定要加载的URL,并将其添加到显示列表中。 2. **Event监听器**:为了获取加载进度,...

    Flex读取excel

    3. **Flex与Excel交互**:为了实现Flex与Excel文件的交互,我们需要借助第三方库,例如`as3xls`。 #### 三、核心知识点解析 ##### 3.1 读取Excel文件 1. **文件选择与上传**: - 使用`FileReference`类来选择并...

    flash常用代码,欢迎大家下载

    在IT行业中,Flash是一款历史悠久的交互式多媒体创作工具,它曾经是网页动画和交互设计的首选平台。在本文中,我们将深入探讨“Flash常用代码”这一主题,这是一些适用于初学者的基础编程知识,旨在帮助他们掌握...

Global site tag (gtag.js) - Google Analytics