Adobe Flash(原称Macromedia Flash,简称Flash;前身FutureSplash)是美国Macromedia公司(已被Adobe公司收购)所设计的一种二维动画软件。通常包括Adobe Flash,用于设计和编辑Flash文档,以及Adobe Flash Player,用于播放Flash文档。 一个FLASH动画,如果非常大,估计下载会一段时间,这样就可能在播放时一边播放一边下载,为了解决这种问题,通问会做一个加载片头,一旦加载完才开始播放,这就是我们通常所说的loading,今天就来讲讲关于制作loading的基本原理,让你真正明白制作loading的前前后后。 第二,用另个一个swf来加载需要做loading的swf。这种方法可以有比较完整的加载进度条以及百分比文字,缺点是容易引起其他问题,这个后面会讨论。 举个例子来说,我想为A2.SWF做一个loading,关键代码如下: ...... this.loaderInfo.addEventListener(ProgressEvent.PROGRESS ,loadProgress); this.loaderInfo.addEventListener(Event.COMPLETE ,loadComplete); ......AS3.0中增加了一个新的loaderInfo类来提供已加载的swf、图像文件的信息。flashplayer通过调度ProgressEvent对象的loadProgress方法来实现对加载内容反馈,当加载完成后,flashplayer再调度Event对象的loadComple方法。loadProgress方法是定义加载进度的方法,所有有关加载的信息都可以在这个方法中加以反馈: ...... private function LoadProgress(e:ProgressEvent) { var loaded:uint=e.bytesLoaded; var total:uint=e.bytesTotal; var percent:Number=int((loaded/total)*100); trace(percent+"%"); } ......上面的代码输出正在载入内容的百分比,你完全可以在这段代码中加入你自己的元素来丰富你的loading的内容,从而使得用户在等待过程中能够清楚的知道下载的进度,这样我们就有必要制作一个精美的小动画了。当加载完成后,就可以执行loadComplete这个方法。在loadComplete方法里添加你想要的动作,常常大家会放一个播放的按钮,让用户通过按这个按钮进入真正的动画。 这里我们要注意,直接在swf上添加loading可能会导致loading不是从1%开始,我们可以用一个swf加载另一个swf的方法来实现完整的loading,比如,我想在A1.swf里加载A2.swf,那么在A1.swf的动画程序中使用loader加载A2.swf。值得注意的是,监听loader的加载进度需要使用loader的contentLoaderInfo属性,而不是loaderInfo。 由于A1.SWF只起到加载A2.SWF的作用,并没有其他显示内容,所以它本身的加载可以忽略不计,这种方法可以比较完整的展示A2.SWF的加载过程。但是,同时使用这种方法也引发了一些问题,比如你在A2.SWF里与web端进行通信,使用了loaderInfo的parameters属性,则你在用A1.SWF加载A2.SWF后,通信将失效。这是因为FlashVars HTML 参数只影响主swf(例子里为A1.SWF),就是说你可以在A1.SWF里完成通信,但是A2.SWF不行。所以,我们可以先在A1.SWF中获取到页面要传递的信息,然后再让A2.SWF从A1.SWF中获取这个信息就可以了。通常我是这样处理的,假如A1.SWF的文档类为Main.as,那么在Main.as中定义一个static的属性比如prama(public static var prama),用来保存传递的信息,然后再在A2.SWF中通过Main.prama获取这个信息。这样就间接实现了A2.SWF与web端的通信。 好了,今天主要是给大家介绍loading制作的基本原理,至于详细的loading你可以在网上找到很多,这里就不给大家讲了。
Adobe Flash Player能够播放简短快速的多媒体动画、交互式动画以及飞行标志等各类图像文件。 |
温馨提示:喜欢本站的话,请收藏一下本站!