mochicrypt包的预加载器类解析
"这是一个名为'拆积木代码'的ActionScript 3 (AS3)类,用于实现一个预加载器(Preloader)功能。这个预加载器是基于MovieClip的动态类,位于'mochicrypt'包中。它主要用于加载和处理补丁(patch)和负载(payload)的数据,确保应用程序或游戏的资源能够正确且有效地加载。" 在这个`Preloader`类中,定义了一些私有变量来跟踪加载进度和状态: 1. `payloadLoader`: 一个`Loader`对象,用于加载主要的游戏或应用程序数据(payload)。 2. `patchProgress` 和 `payloadProgress`: 分别表示补丁和负载的加载进度。 3. `payloadDoneTime`: 用来记录负载何时完成加载的时间点。 4. `lastProgress`: 存储上一次的加载进度,用于处理进度更新。 5. `patchTimeoutMsec`: 补丁加载的超时时间,如果超过这个时间未完成,则视为失败。 6. `patchFailed`: 标记补丁加载是否失败。 7. `background`: 可能是一个背景组件,用于预加载界面的视觉效果。 8. `payloadDone` 和 `patchDone`: 分别标记负载和补丁是否已经加载完成。 9. `icon`: 一个`LockIcon`对象,可能用于显示加载状态或安全相关的图标。 类还包含了一个`patchLoader`变量,用于加载补丁文件。此外,它引用了一些常量来定义版本信息和补丁的URL: 1. `VERSION`: 类的版本号,这里为"3.2c"。 2. `PAYLOAD_NAME`: 负载文件的名称,这里为"mochicrypt.Payload"。 3. `PATCH_URL`: 补丁文件的默认URL,可以从配置(Config)中获取,或者使用"http://cdn.mochiads.com/patch.swf"作为默认值。 在类的构造函数中,创建了`patchLoader`实例,并为`loaderInfo`对象添加了事件监听器,以便在加载过程中捕获`ProgressEvent.PROGRESS`和`Event.INIT`事件。这些事件处理函数将用于更新加载进度、处理补丁和负载的加载完成。 通过这个类,开发者可以构建一个自定义的预加载体验,确保用户在等待游戏或应用程序完全加载时有一个良好的交互体验。补丁加载机制允许开发者在不更新整个应用的情况下推送修复或更新,提高了用户体验。
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import flash.utils.*;
import mochicrypt.as3.*;
dynamic public class Preloader extends MovieClip
{
private var payloadLoader:Loader;
private var patchProgress:Number = 0;
private var payloadProgress:Number = 0;
private var payloadDoneTime:Number = -1;
private var lastProgress:Number = 0;
private var patchTimeoutMsec:Number = 5000;
private var patchFailed:Boolean = false;
public var background:Background;
private var payloadDone:Boolean = false;
private var patchDone:Boolean = false;
public var icon:LockIcon;
private var patchLoader:Loader;
private static const VERSION:String = "3.2c";
private static const PAYLOAD_NAME:String = "mochicrypt.Payload";
private static const PATCH_URL:String = Config.getString("patchURL", "http://cdn.mochiads.com/patch.swf");
public function Preloader()
{
this.patchLoader = new Loader();
loaderInfo.addEventListener(Event.INIT, this.initHandler);
loaderInfo.addEventListener(Event.COMPLETE, this.completeHandler);
loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.ioErrorHandler);
return;
}// end function
public function parse_vsn(param1:String) : Number
{
var _loc_2:* = param1.split(" ")[1].split(",");
var _loc_3:* = parseInt(_loc_2[0]);
if (_loc_3 < 10)
{
return _loc_3;
}
if (_loc_3 === 10)
{
return _loc_3 + Math.max(0, parseInt(_loc_2[1])--);
}
return _loc_3 + 2;
}// end function
public function ad_finished() : void
{
this.finish();
return;
}// end function
public function ad_progress(param1:Number) : void
{
剩余11页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全