在页面上显示SWF是要等到目标完全被加载完才会渲染出来。当加载的SWF文件比较大时,页面会处于空白状态,用户体验不好。较好的做法是做一个文件大小较小的loading动画来加载目标SWF,但对于单独的项目来说并不是最好的做法,因为这样无疑要维护多一个项目。看看下面这种做法:
1.创建Preloading.fla,设置Export class in Frame:2(第二帧才运行Main class)
2.在库中新建元件McLoading,Type:MovieClip,并勾上Export for ActionScript
3.在库中新建元件McMain,Type:MovieClip,并勾上Export For ActionScript,把Class改为Preloading
4.在场景中新建两帧,第一帧放McLoading,第二帧放McMain
5.在FB中新建Professional项目,并选择Preloading.fla作为Target
6.在FB中新建类McLoading,写入下列代码
public function McLoading()
{
loaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);
loaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onProgress(event:ProgressEvent):void
{
trace("loading:"+int(event.bytesLoaded / event.bytesTotal * 100) + "%");
}
private function onComplete(event:Event):void
{
trace('loading complete');
var mc:MovieClip = parent as MovieClip;
mc.gotoAndStop(2);
}
7.在FB中编辑Preloading.as,写入下列代码
public function Preloading()
{
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
private function onAddedToStage(event:Event):void
{
event.currentTarget.removeEventListener(event.type,onAddedToStage);
trace('addedTostage');
}
当SWF文件较大导致页面加载延迟时,通过创建一个小型的预加载动画提升用户体验。本文介绍了一种方法,无需额外维护独立的预加载项目。详细步骤包括创建Preloading.fla,设置导出类,创建McLoading和McMain元件,编写相关ActionScript代码,实现SWF预加载功能。
1821

被折叠的 条评论
为什么被折叠?



