大部分flash网游,都是将资源文件分散在不同的swf或swc中,在需要的时候再去加载使用。
这样作的好处在于有效利用用户机器资源,如果全部加载,1.过于耗时,2.内存恐怕吃不消。
把代码共享出来,希望大家不用走弯路。
仅仅是一个测试的东西。
主要是ResLoader类
通过这个类来实现资源加载,以及生成对象。
示例代码:
private var reslib:ResLoader;
reslib= new ResLoader();
reslib.callbackFn = reloadResSuccess;
//reslib.progressFn=progressHandler;
reslib.loadRes("UIResource.swf");
private function reloadResSuccess(e:Event):void
{
for (var i:uint=0; i<10000; i++)
{
var o:DisplayObject = reslib.getRes("Ball");
if (o == null)
{
continue;
}
var s:Number = Math.random();
o.scaleX=s;
o.scaleY=s;
o.x = Math.random() * stage.stageWidth;
o.y = Math.random() * stage.stage.height;
addChild(o);
}
}
经测试,虽然是用反射生成实例,不过挺快,创建Ball MC 10000次也才1秒多
提醒:资源文件编辑完一定要发布,而不是ctrl+enter.
只有发布以后.swf中才会生成相应的类引用。
因为没有发布,导致在查询是否包含相应类型的时候,总是提示找不到类的错误。