学院首页>图形图像>FLASH>FLASH中Loading的制作

FLASH中Loading的制作

作者:未知 来源:未知 添加时间:2006-5-21 11:56:33
关于Loading的制作,网上已经有很多文章都有介绍,因为最近网友问到这个问题比较多,所以幸运鸟这次也来凑个热闹,一方面总结一下制作Loading的方法,另一方面说说在Loading制作中的一些问题。

  所谓Loading,主要是指在网上观看Flash电影时,有时由于文件太大,或是网速限制,需要装载一段时间才能播放,但由于这个Loading所需的时间对于观看者来说是未知的,所以在Flash电影装载过程中,如果没有任何提示,多数用户都不会有足够的耐心在面对空白的网页许久仍继续等待。制作Loading,就是要告诉用户目前Flash电影的装载情况,哪怕你做的Loading只是简单的一个小动画,都会起到很好的效果。在使用本地机时,不会存在Loading的问题,但我们可以使用Flash软件模拟网页下载环境进行调试,这一点我们在本节中会有详细说明。

  Loading分成两种,一种是没有下载进度提示的,另一种是精确显示下载进度的。我们可以根据需要分别使用,也可以结合两者,或许可以得到更好的效果。下面我们就来分别介绍这两种Loading的制作,在这里我们为了教学,选用的都是比较简单的Loading示例,不过制作Loading的方法大同小异,大家在实际制作中可以充分发挥想象,相信会做出好的Loading作品来的。

简单的Loading制作

  这一种Loading是不提示下载进度的,如下面的示例所示,这种Loading非常适合于下面的情况,也就是我们事先把所有的动画都做成了一个Movie Clip,然后在主场景中把这个Movie Clip拖到画面中,只占一帧。对于这种情况,做有精确下载进度显示的Loading就有些力不从心,因为精确显示需要用到Flash4提供的两个参数。一个是_framesloaded,表示已经装载的帧数,另一个是_totalframes,表示场景中动画占据的总帧数,要精确显示载入进度就要用到这两个参数的比值。但因为主场景中只有一帧,精确显示实际上是很难实现的。

  下面我们就来介绍如何把这段动画加入到Flash电影中去。

  首先,我们先找一个比较大一些的Flash电影,我在这里就用第三章第十一节《书本翻页效果》中的示例。这个示例就是把所有的动画都做成一个名为page flip的Movie Clip,然后在主场景中把这个Movie Clip拖出来放到第1帧的。

  要做这个动画的Loading一般做法是先制作一个Loading小动画的Movie Clip,例如上面这个小动画,然后在主场景中把前两帧空出来(至少要两帧),在第3帧或以后加入主动画。上面这个动画大家应该一看就会做,我就不多说了,只把它的时间轴提供给大家,见下图,其中Layer 1放文字“载入中”,Layer 2在不同的帧放上不同数量的小圆点。

  现在在主场景中把第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键,这样才能保证动画可以完全顺利播放。

站内搜索