flash教程制作一个完整的loading

2015-01-22 09:29 96 1 收藏

小编上次分享的Flash小技巧,不知道大家学的怎么样啦~这次又带来一个小技巧教程,简易程度和上次差不多哦,对于热衷于Flash网络爱好者来说不是问题,跟着小编往下看吧~

【 tulaoshi.com - flash 】

flash制作一个完整的loading

  loading这个东西,说穿了其实是给用户反馈的一种表现形式,在客户端中的loading,通常以鼠标的手型变化来表现;而在web端,loading的创意则层出不穷了,而且给用户的反馈更好。本文将主要阐述在flash中制作loading的一些问题。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)

  先来看看loading的原理。在flash中,制作loading的目的是为了预先加载一部分内容(你可以选择全部加载完毕,或者加载一部分之后),然后再把flash的主要内容展示出来。一般来讲,loading是放在第一帧上面的(也可以不放在第一帧,比如放在任意一帧,但是在第一帧你要做个跳转,让播放头到loading的那一帧去)。这里要注意一个问题,如果你的flash程序有从元件库里导出元件的话(默认为第一帧导出),要导出的原件全部加载完毕之后才会显示第一帧的内容(即,你的loading)。这样的话很可能你在第一帧导出的内容过于庞大,占据了整个flash应用的很大一部分,比如50%,那么我们实际运行的效果就是在一段空白之后loading从50%处开始显示。

  要避免上面的问题(一个明显的不好的用户体验),通常来讲我会用到两种方法:

  第一,把要导出的元件取消导出,把它们集中放在某一帧(除开你做loading的那一帧),然后在放元件的这一帧之后的那一帧开始运行你的程序。

  第二,用另个一个swf来加载需要做loading的swf。这种方法可以有比较完整的加载进度条以及百分比文字,缺点是容易引起其他问题,这个后面会讨论。

  举个例子来说,我想为A.swf做一个loading,关键代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/) ......

  this. loaderInfo. addEventListener (SPANrogressEvent. SPANROGRESS,loadSPANrogress );

  this. loaderInfo. addEventListener (Event. COMSPANLETE,loadComSPANlete );

......

  AS3.0中增加了一个新的loaderInfo类来提供已加载的swf、图像文件的信息。flashplayer通过调度ProgressEvent对象的loadProgress方法来实现对加载内容反馈的监听,当加载全部完成后,flashplayer再调度Event对象的loadComple方法。loadProgress方法是我定义的监听加载进度的方法,所有有关加载的信息都可以在这个方法中加以反馈:

......

  SPANrivate functionLoadSPANrogress ( e:SPANrogressEvent )

  {

  var loaded:uint= e. bytesLoaded;

  vartotal:uint= e. bytesTotal;

  varSPANercent: Number= int ( ( loaded /total ) * 100 );

  trace (SPANercent+ "%" );

  }

......

  上面的代码输出正在载入内容的百分比,这是一种最简单的反馈,但是你可以在这段代码里丰富你的loading的内容,使其更具有趣味性,以使得用户在等待下载的时候能清楚的知道下载的进度,或者在这时候观赏一段精美的动画——这完全取决于你的设计。这时候加载完成了,可以执行loadComplete这个方法了。在loadComplete方法里添加你想要的动作,比如给用户一个播放按钮以使得用户可以自主选择,或者直接进入某一帧进行播放。

  前面说过,直接在swf上添加loading可能会导致loading不是从1%开始,这时候可以用一个swf加载另一个swf的方法来实现完整的loading,比如,我想在B.swf里加载A.swf,那么在B.swf的程序里使用loader加载A.swf。需要注意的是,监听loader的加载进度需要使用loader的contentLoaderInfo属性,而不是loaderInfo。关于loaderInfo和contentLoaderInfo的关系如下图所示:

flash制作一个完整的loading

  由于B.swf只起到加载A.swf的作用,并没有其他显示内容,所以它本身的加载可以忽略不计,这种方法可以比较完整的展示A.swf的加载过程。但是,同时使用这种方法也引发了一些问题,比如你在A.swf里与web端进行通信,使用了loaderInfo的parameters属性,则你在用B.swf加载A.swf后,通信将失效。这是因为FlashVarsHTML 参数只影响主swf(例子里为B.swf),就是说你可以在B.swf里完成通信,但是A.swf不行。所以,我们可以先在B.swf中获取到页面要传递的信息,然后再让A.swf从B.swf中获取这个信息就可以了。通常我是这样处理的,假如B.swf的文档类为Main.as,那么在Main.as中定义一个static的属性比如prama(public static var prama),用来保存传递的信息,然后再在A.swf中通过Main.prama获取这个信息。这样就间接实现了A.swf与web端的通信。

  综上所述,本文不是向大家介绍如何制作一个完整的loading的,相信loading的例子在网上并不少见,但是只有明白了loading制作的基本原理,才能从根本上制作出更为规范和友好的loading来。

来源:https://www.tulaoshi.com/n/20150122/131541.html

延伸阅读
标签: FLASH flash教程
本文由 3622261 (最後的執著)   原创,转载请保留此信息! 看不到动画的朋友请去这里观看:http://bbs./viewthread.php?tid=105660 [1] 200806/12985_2.html'>[2] 200806/12985_2.html'>下一页 1、新建立Flash文档,然后修改文档属性: 2、准备3张图片,并且利用PS把图片改成黑白,共6张图片 3、...
标签: flash教程
曾经因几位小学老师相邀为她们做课件,其中有好几节课都是关于时钟的认识,为了能够让小学生充分地认识时钟,不得不制作多个带有时间刻度的钟面。我记得小时候,多媒体教学还没有出现,老师为了能让我们对时钟有个直观的认识。用一块纸板和小棒做时钟模具,然后拨动给我们看,让我们来接触它,认识它。于是,我就思考,能不能通过多媒体来做一个...
豆腐制作 都是精品 http://www.asp888.net 豆腐技术站 前面讲过很多的用asp+实现网长追捕的程序,现在就在这里给大家提供这个完整应用的原程序,希望大家首先先看看 以前的文章,带者问题来看这个程序,其实是很简单的。同时我也给大家带来了这个程序的下载! 这个程序现在还是 有些 小问题,比如在 处理通过IP 地址查找 主机域名的时候,如...
1. Xixi no Banho 2. Just in Queso 3. Puma 4. Sam Design 5. Mary and Max 6. Comcast Town 7. Reva France 8. Nil in alt benliginin 9. Drinkzzz 10. Devotchka 11. Max Shaman 12. Au Smart Sports 13. Red Bull Soapbox Racer 14. Cheese and Burger 15. Brand Studio 16...
之前发布过一篇文章《浅谈如何使用软件从零开始,高效高质设计一个完整的配色方案》,那篇文章主要是分享了一个傻瓜式的配色方案制作方法,但是没有实际运用的例子,让很多朋友都不了解具体怎么运用。 为了提高自己的实际运用能力,也为了能和大家一起分享学习交流,共同进步,欢迎大家指出优缺,扬长补短,提高实际操作能力喔~ 这次专门写...

经验教程

704

收藏

95
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部