Loading预载动画程式设计

2008-04-02 11:03:54来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  我们说过,Flash制作的多媒体网站是Flash动画制作的精髓,也是Flash动画最为广泛的用途。在Flash出现以前,网站设计是静态的和Gif动画的天下。当然更有JavaApplet和JavaScript等众多技术。但这些技术的应用范围并不广泛。网络带宽也是影响网络多媒体发展的一个瓶径。但Flash出现了。他带给网络全新的意义,带给网络互动的媒体,使网络交互多媒体成为可能,成为现实。三年前当我们浏览外国的网站榜评时,还主要是停留在一些平面设计作品上,但是现在外国的榜评已拥有了很多的互动多媒体动画网站。Flash发展的速度由此可见。IE浏览器在6.0版本中已内置了Flash Player播放器,似乎在预示着网站制作的发展道路。让我们一起来领略互动的魅力。

  Loading 预载动画程式设计

  Loading网页预载程式是网页动画中的一个关键,因为即便是Flash生成的文档很小,但是制作出的大型动画对于使用调制解调器的用户速度还是需要解决的。假如没有一个预载的过程,只怕动画观看起来也不会很流畅。特别是在动画中加入了大量的声音和图像的动画没有了Loading将不会流畅的展现在我们眼前。

  在此之前先学习一下在这章将要出现的属性和函数。假如由于例中使用了没有接触过的函数和属性,请先照例制作,等在以后的章节中学习了相关的其他函数后回过头来再看的话,就会完全明白例子中的作用。

  ◆ _framesloaded

  _framesloaded是电影剪辑的属性,用来获取电影剪辑中的已下载的帧数,当然大部的应用于电影剪辑的属性都能够应用于整部动画。此属性只能用来获取。

  if(_root.mc._framesloaded>100){

   _root.gotoandplay(1)

  }

  此例子在普通模式下输入将成为:

  if(getproperty("_root.mc",_framesloaded)>100){

   gotoandplay(1)

  }

  普通模式中对属性的获取将使用getproperty函数,但此函数在新的.语法的使用中并非最好,在以下的例子中将不再引用。此例中以获得电影剪辑已下载的帧数大于100时,开始返回场景重新播放。这也是在网站制作中一个比较典型的例子,很多的电影剪辑因为体积问题,在“流”式播放过程中不会很流畅。而下例将是个错误的例子。

  _root.mc._framesloaded=100;

  _root.gotoandplay(1);

  在编程中将不允许对_framesloaded属性进行赋值,假如您想当下载的帧数等于100时根目录开始回放的话,请按下例制作。

  if(_root.mc._framesloaded=100){

   _root.gotoandplay(1);

  }

  ◆ _totalframes

  _totalframes属性是用来获取电影剪辑实体的总帧数。也能够用来获取动画的总帧数。在下例中会看到他的用法。

  i=_root.mc._totalframes;

  if(_root.cuttentframes=i);

  _root.stop();

  }

  程式中将电影剪辑实体的总帧数赋值赋予了变量i,而当主场景的动画播放指针播放到和电影剪辑中的总帧数相同的数目时,动画停止播放。此属性同样为非赋值属性。

  ◆ ifFramesloaded

  ifFramesloaded函数也是用来获取已下载的帧数的,和_framesloaded不同的是他用于一个简单的行为来描述已下载的帧数。而且此函数似乎是专为Loading设计,他位于Basic Actions指令集,指令名称为If Frames Is Loaded。以下实例将构成一个最为简单的Loading。

  ifFrameLoaded(_totalframes){

   gotoandplay(3);

  }else{

   gotoandplay(1);

  }

  将此程式加于影片的第二帧,可用于任何动画的预载技术。意思为当装入的帧数为总帧数时开始播放第三帧,假如不然,播放第一帧。在Flash5以后开始使用更多的函数和属性,所以此函数不推荐使用。

  ◆ getBytesLoaded()

  getBytesLoaded()为获取电影剪辑实体的已下载字节数,假如是外部动画将返回动画的总字节数。GetBytesLoaded用于更加精确的Loading设计,因为他并不像_framesloaded属性是获取影片的总帧数,而是以字节做为单位获取。假如说动画的最后一帧将是个大型的图像或是声音角色的话,哪么_framesloaded所获得的百分比将不准确,getBytesLoaded有效的弥补了此方面的不足。例:

  i=_root.getBytesTotal();

  if(_root.getBytesLoaded()>=1000000){

   n=_root.getBytesLoaded();

   if(n<=i/4){

   _root.stop();

   trace("下载了1M,还不到四分之一,动画太大,下载时间会很长,是否继续?")

   }

  }

  此句的意思为当动画下载到1MB时,比较是否已下载了动画的四分之一,假如是,停止动画的播放,在调试窗口显示“下载了1M,..."等字符串,根据动画中的其他行为判断是否继续播放。此例的另一特点是,停止的地方假如有插入电影剪辑的话,电影剪辑将不会停止播放。也能够通过动态文本显示已下载的文字数,假设在动画的主场景中有一个变量名为text的动态文本变量,哪么例:

  _root.text=_root.getBytesLoaded();

  if(_root.getBytesLoaded()>=_root.getBytesTotal()){

   gotoandplay(3);

  }else{

   gotoandplay(1);

  }

  动态文本框会动态显示已下载的字节数为观众服务。观众也会了解在动画的下载过程中动态的进度了。

  ◆ getBytesTotal()

  getBytesTotal()函数是用来获取动画或是电影剪辑的总字节数,当然我们能够通过对文档的大小来观察动画的总字节数,但对于网络上使用浏览器的观众来说,动态显示文档大小是很有必要的。更有,假如想观察动画中电影剪辑的体积就只有靠getBytesTotal()函数了。

  If(_root.getBytesTotal()>=1000000){

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: FlashLite1.1FSCommand2用法列表

下一篇: Flash实例学习:随机射线效果