gamepackage之Loader研究

原创 2006年06月22日 21:42:00
闲来无聊研究了一下gamepackage里面的一个Loader和LoadQueue...发现作者确实是太牛X了,我已经对他pf的5体趴地了....


先看class Loader,作者没有用Flash自带的MovieClipLoader来实现,而是自己写了一个算法,估计是为了兼容他自己的框架吧.
看代码,不去管里面的细节,像implements Executeable还有 Impulse.connect(this)...等这些都是作者整个package框架的实现.

首先构造函数中,定义了一些必要的参数.并且使用了隐藏的AsBroadcaster来广播一些事件.这里是关键,等下到LoadQueue的时候可以看到作者的巧妙运用.

load方法,就是一个下载的开始.

接着私有的loadClip方法,就是作者自己写的一个loading算法模拟MovieClipLoader(简称MCL)的,要好好研究一下,可以看出作者对flash的雄厚造诣.

其中mode==1时候的判断,是判断下载的文件是否已经被连接到,如果连接到了,说明 容器._url和下载文件的url肯定一样了,那这个时刻正好就是,文件被正确连接到的时候.广播onLoaderRequest事件.在MCL里这个事 件就是onLoadStart.这个技巧很棒...

当正确连接到文件后,估计flash player要获得加载文件的总大小,在获得之前totalbytes是等于-1的.所以先判断是否等于-1,当大于-1了,说明文件真正开始下载了.这 个时候广播onLoaderStart.在MCL中,没有准确的这个事件,可能MM的人没想过要这么精细.因为在准确连接到文件的时候,已经可以对容器做 初始操作了.

用过loadMovie的人应该都知道,容器在loadMovie之前,指的还是主文件中的mc.如果这个时候给mc定义一些属性值,在loadMovie之后之前定义的属性值都没有了.
最好的办法是在外部swf加载进来时再对容器进行一些属性的定义.
那什么时刻容器才开始等于外部的swf了呢?记得以前,我只是判断 容器.getBytesTotal,但getBytesTotal这个函数很是莫名,比如在没有loadMovie时,一个mc的 getBytesTotal等于0,而如果在loadMovie请求连接时,又等于-1,连接到了后,一开始几帧又是0,反正和网速有很大的关系,实在没 法准确判断,而作者使用_url来判断,无疑要比getBytesTotal来的准确清晰.


接下去的都是常规判断了,而当mode==4的时候,作者的判断好像缺乏实际意义,我测试下来.作者的onLoaderComplete和 onLoaderInit事件触发的情况都差不多.而MCL中onLoadComplete和onLoadInit就很明显区别,MCL中的 onLoadComplete是在外部swf文件完成加载后,第一帧还没有任何执行前.
执行AS步骤是
MCL.onLoadComplete
外部SWF第一帧AS
MCL.onLoadInit
可以说MCL在下载完结时刻的判断要更精确.

作者毕竟是在Flash的基础上写的.没有MCL那么强大(flash8的话,MCL在onLoadError的时候能给出httpStatus),不过除非特别需要,这样已经足够用了.

相关文章推荐

Android-Universal-Image-Loader的缓存处理机制研究

讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西。看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制。...

Android-Universal-Image-Loader异步加载图片框架学习研究

GitHub下载地址  https://github.com/nostra13/Android-Universal-Image-Loader 先来看一下Android-Universal-Im...

webpack3最新版本配置研究(二)loader

接上面的loaderurl-loader 现在来我们来试试加载图片,第一件事情肯定是安装对应的loader,可以将小图片转换成base64,减少请求 npm install url-loader ...

Universal-Image-Loader使用demo

  • 2017年11月16日 14:21
  • 972KB
  • 下载

Universal-Image-Loader学习系列(一),下载及简单的使用

1.Android-Universal-Image-Loader的简介 在Android应用开发过程中,加载和处理图片是一种非常普遍的的需求。一个好的图片处理框架对应用的性能和用户的体验有着很大的帮助...

Flash_Loader(ST官方串口下载工具)

  • 2017年10月24日 11:38
  • 6.23MB
  • 下载

Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

原文地址:http://blog.csdn.net/vipzjyno1/article/details/23206387 这个图片异步加载并缓存的类已经被很多开发者所使用,是最常用的...

flash_loader_demonstrator.zip

  • 2016年07月03日 11:45
  • 6.38MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gamepackage之Loader研究
举报原因:
原因补充:

(最多只允许输入30个字)