许多朋友都喜欢在较大的Flash
网页或动画前加个preload(预载)的动画,让别人知道Flash下载的进度并且让下载的过程不会太沉闷。我在制作一个Flash preload动画的过程中,发现了一个动画进度显示的问题,跟大家分享一下,以避免类似情况的发生。
1.首先,我们先制作一个preload动画,如果你熟悉这个过程,可以直接进入第4步。Preload动画的制作方法很多,以下只是其中一种。建立2个图层,命名为action和txt,一个用来放ActionScript,一个用来放显示进度的文字。如图:

2.在txt图层输入动态文字并命名为p_txt,记得要多留一定的空位,否则无法完全显示。具体设置如图:

3.根据下图所示代码在action图层的第一帧和第二帧输入ActionScript。现在Preload动画已经做好了,这个动画很简单,只有下载百分比进度的显示。在这步完成后我想说的是,preload动画只是点缀,不需要加入太多的东西,以免preload动画下载得太慢,这样preload动画就没有意义了。

4.新建一个Scene,按Ctrl+R导入一张较大的位图图片。图片太小的话,下载进度快我们就没有办法看清要发生的问题。如果你不希望播放的时候会闪烁,可以加个stop在位图那一帧里。
5.按Ctrl+Enter开始测试动画,在Debug菜单下可以选择你需要的下载速率。在View菜单下你确认选择了Bandwidth Profiler,这样我们可以看清楚文件每帧的大小。然后选择Show Streaming,模拟真实下载时的效果。见下图:

6.从Bandwidth Profiler可以看到,动画一共有3帧。1、2帧都很小,第3帧由于有我们导入的位图,显得较大(见下图)。

在测试preload动画的时候一切正常,动画从0%开始一直到100,然后进入Scene2的位图帧。这是因为这里的preload动画非常小,连整体大小的1%都不到。如果preload动画较大,那么将根据它的相对与整个Flash的大小而出现百分比。简单的说,占文件整体大小10%的preload动画将在文件下载到10%的时候才会出现preload动画和下载进度百分比(一出来就是10%,而不是从0%开始)。这也是为什么preload动画要尽量小的原因。
7.在第6步讲述的观点并不是这篇文章的主要内容,请大家接着做下去。把位图转换成Movie Clip,按F11打开Library浮动面版,在该Movie Clip上按右键,选择Linkage,选中Export for ActionScript。见下图:

8.熟悉ActionScript的朋友会知道,这样做其实是为ActionScript做准备,多用于一些ActionScript的特效或者游戏,相应的Movie Clip就不用出现在场景里了。这样做之后,我们再按Ctrl+Enter测试动画。见下图:

看到区别了吧?整个Flash的大小几乎都集中到第1帧里了!在这个例子里,如果你选择View下面的Show Streaming可以发现preload动画到100%的时候才出现,这样也就完全失去了preload的意义。我是在做一个Flash网站的时候发现这个问题的,当时我的preload动画到70%才显示。根据我的分析,Flash为了方便ActionScript对链接Movie Clip的调用,在开头部分就把所有链接的Movie Clip下载完了。所以大家要尽量避免过多的Movie Clip链接。
下面我简单的介绍三种解决的办法:移出屏幕法,将需要的Movie Clip移到屏幕外(Flash里白色区域之外)。loadMovie法,在一些网站里使用loadMovie语句载入动画。不可见Movie Clip法,用首帧为空或_visible属性为false的Movie Clip代替。



















共有 0 位网友发表了评论,得分 0 分,平均 0 分 查看完整评论