《资源加载模式迁移》由会员分享,可在线阅读,更多相关《资源加载模式迁移(10页珍藏版)》请在金锄头文库上搜索。
1、AS3 资源加载模式迁移, 陶冶 2010.12.6,项目案例,本草仙木 项目中的加载模式在资源拆分之前是在 Loading 时全部加载,导致 Loading 等待时间过长。经讨论,决定最终采用异步加载方式加载拆开的资源,加载过程中显示Loading。,项目案例,此案例难点在于: 确保以前的代码能够在异步环境中完美执行,不会报错。get() 操作数量 120次get() 操作执行完成之后,会立即对获取的资源操作。 而这个时候,加载还没有完成,不能对资源scale等。get() 操作分散在各个类中,如果一一修改,会出现无法预料的BUG。,解决方案,资源加载模式迁移:对资源的 get() 操作进行
2、代理,不立即执行后续的代码,而是将后续的操作用备忘录的模式记录下来,等待加载完成。难点:之前的同步操作要转换成异步操作,有可能出现注册点问题,或者可能出现“无法访问空对象引用的属性或方法。”,DelayLoader 类,public function DelayLoader(_symbolName : String, targetURL : String , _autoRemoveSelf : Boolean = true , _appDomain : ApplicationDomain = null , _loadingAnimation : MovieClip = null, _isMov
3、ieClip : Boolean = true):void/author 陶冶 . ,DelayLoader 类,var loader:DelayLoader = new DelayLoader(name,source,autoRemove,null,null,!isPNG ); if (isPNG) loader.setDelayCache(); loader. onLoadCompleted = function(); return loader;,迁移步骤,检查 ApplicationDomain.currentDomain 是否包含类定义。如果是,return;不是则往下执行。依次检查
4、 Loader.contentLoaderInfo.applicationDomain,如果依然不包含定义,则往下执行。使用内置的 loader 加载 images / resources / 元件名.swf。如果依然获取不到定义,将加载 product_locked_icon.png,显示锁图标。,解决过的问题,作物的注册点不统一。加载完成之后,不能addChild(new XXX)作物loading位置不一。作物、icon缩放比例不对。icon空白。,总结,尽量保持代码的原始形态。分析问题要全面。对已有的操作方式做出最小的改动。对于资源等必须采用统一的标准,否则会出现上一页的问题。,谢谢,