我在主SWF中加载所有SWC的动态加载,以便更快地加载主swf,但是现在我需要将所有swcs缓存到本地计算机中以加快速度。
private function loadAssets():void
{
swcObj=new Object();
swcObj.swcPath='assets/swc/1.swc';
swcObj.className="Part_0_1";
swcs.push(swcObj);
swcObj=new Object();
swcObj.swcPath='assets/swc/2.swc';
swcObj.className="0_2";
swcs.push(swcObj);
swcObj=new Object();
swcObj.swcPath='assets/swc/3.swc';
swcObj.className="0_3";
swcs.push(swcObj);
}
然后我使用这个数组来使用我项目中的所有类,但我不知道如何缓存这些swc以便更快地使用,如果有人有想法,请分享。
答案 0 :(得分:0)
事实上,浏览器会为您预先缓存,您不需要额外的努力。所以,只需正常加载它们,不要担心缓存。但是,您可以激励用户增加本地浏览器缓存,以便可以减少资源加载时等待的时间,但如果用户每天观看3吨YouTube,这将无济于事。
答案 1 :(得分:0)
SWC文件不适用于动态加载。
它们是静态库,可以使用swf链接
mxmlc的-include-libraries
和library-path
选项或 - 因为您似乎在SWC Include Libraries
中使用FlashDevelop - SWC Libraries
和Project>Compiler options
。 SWC可能包含代码(类),资产(符号/位图/声音......)或两者的组合。
动态加载资源是通过flash.display.Loader完成的 您可以将Loader用作在舞台上添加的简单DisplayObject实例: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#includeExamplesSummary
,或使用其ApplicationDomain作为类定义库,允许您随意创建实例: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/ApplicationDomain.html#includeExamplesSummary
在大多数情况下,从浏览器进行缓存就足够了,除非您有非常具体的需求
最后,有不同的方法可以优化加载时间,其中一种方法是使用一个小的swf作为加载器/主菜单,并根据需要加载其他内容,就像你似乎尝试做的那样,但你也可以创建一个具有多个帧的单个swf,将由flash播放器“流式传输”,例如: 第一帧尽可能小,只需要几个kb的闪屏/标识/加载/无论你想要什么,使初始的空白屏幕尽可能短,然后第二帧保持主要内容。您可以使用例如
来扩展此系统