现在在主场景中把第1帧中的那个Movie Clip删除,在第3帧按F6插入关键帧,并从图库中把page
flip电影片断拖到工作区。
新建一个层用于放Loading和加入Actions语句进行控制。在第2帧按F6键,这样前两帧都成为关键帧。现在在第1帧把刚才做的Loading动画拖出来放好,双击这个实例,设置实例名为loader。然后双击第1帧,把Actions设置成下列语句:
If(_framesloaded >= _totalframes)
Go to and Play(3)
Else
Set Variable:"frame" = frame + 1
If(frame = 37)
Set Variable:"frame" = 1
End If
Begin Tell Target("/loader")
Go to and Stop(/:frame)
End Tell Target
End If
下面我们来介绍这样设置的目的。
If(_framesloaded
>= _totalframes)
首先加入判断(_framesloaded和_totalframes这两个参数的含义我们上面已经提到过,大家从字面上也可以理解),如果已装入帧数已经达到总帧数,那么
Go
to and Play(3)
就跳转到第3帧也就是书本翻页电影片断所在帧继续播放。
Else
否则,也就是没有装载完时,执行下面的操作。
Set
Variable:"frame" = frame + 1
新建一个变量frame,它代表当前播放到Loading小动画的具体位置,也就是当前播放到哪一帧了。frame的值默认为0,所以在执行了这个语句后frame的值为1,即在一开始将播放小动画的第1帧。
If(frame
= 37)
再加一个判断,因为我们注意到这个Loading小动画一共有36帧,如果frame自加超过了这个数字,我们需要
Set
Variable:"frame" = 1
把变量frame重新设置为1。
End
If
这个嵌套的判断结束。
Begin
Tell Target("/loader")
指示下面的操作我们是针对实例名为loader的电影片断进行的,也就是这个Loading小动画。
Go
to and Stop(/:frame)
跳转到Loading小动画的第frame帧然后停在那一帧上,注意这种表示方法。
End
Tell Target
Tell Target结束。
End
If
最外层的判断结束。
总的说来,就是装完了就播放电影,没装完就循环跳转到Loading小动画依次播放每一帧。
设置好这一帧的Actions之后,我们还需要设置第2帧的Actions。第2帧的Actions很简单,就是Go
to and Play(1)。目的就是阻止Flash在装载完之前播放主动画。
最后因为我们在主场景中增加了2帧,所以还需要对主动画所在层做一些小调整。因为这个page
flip电影片断一共有450帧,所以在Layer 1的第452帧按F5键,这样才能保证动画可以完全顺利播放。这里有简单Loading的示例。
精确Loading的制作
精确的Loading可以让人一目了然,便于用户把握时间。但一般要求主动画直接在主场景中制作,这样才可以连续显示出装载的比例。精确Loading的缺点是它只能显示已装载帧数与总帧数的百分比,不能精确显示已装载数据量与Flash电影总数据量的百分比,也就是说,如果电影的某一帧数据量比其他帧大很多,则会在这一帧上停留很久,而在其他帧上快速掠过。下图给出的只是一个精确Loading的式样,真正的Loading过程是不会象下面这样平滑的。
|