


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AS3 教程如何制作一个完整的 loading 关键词:AS3 教程 :如何制作一个完整的 loading loading 这个东西,说穿了其实是给用户反馈的一种表现形式,在客户端中的 loading, 通常以鼠标的手型变化来表现;而在 web 端,loading 的创意则层出不穷了,而且给用户 的反馈更好。本文将主要阐述在 flash 中制作 loading 的一些问题。 先来看看 loading 的原理。在 flash 中,制作 loading 的目的是为了预先加载一部分内容 (你可以选择全部加载完毕,或者加载一部分之后),然后再把 flash 的主要内容展示出 来。一般来讲,loading 是放在第一帧上面的(也可以不放在第一帧,比如放在任意一帧, 但是在第一帧你要做个跳转,让播放头到 loading 的那一帧去)。这里要注意一个问题, 如果你的 flash 程序有从元件库里导出元件的话(默认为第一帧导出),要导出的原件全 部加载完毕之后才会显示第一帧的内容(即,你的 loading)。这样的话很可能你在第一 帧导出的内容过于庞大,占据了整个 flash 应用的很大一部分,比如 50%,那么我们实际 运行的效果就是在一段空白之后 loading 从 50%处开始显示。 要避免上面的问题(一个明显的不好的用户体验),通常来讲我会用到两种方法: 第一,把要导出的元件取消导出,把它们集中放在某一帧(除开你做 loading 的那一帧), 然后在放元件的这一帧之后的那一帧开始运行你的程序。 第二,用另个一个 swf 来加载需要做 loading 的 swf。这种方法可以有比较完整的加载进 度条以及百分比文字,缺点是容易引起其他问题,这个后面会讨论。 举个例子来说,我想为 A.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,比如,我想在 B.swf 里加载 A.swf,那么在 B.swf 的程序里使用 loader 加载 A.swf。需要注意的是,监听 loader 的 加载进度需要使用 loader 的 contentLoaderInfo 属性,而不是 loaderInfo。关于 loaderInfo 和 contentLoaderInfo 的关系如下图所示: 由于 B.swf 只起到加载 A.swf 的作用,并没有其他显示内容,所以它本身的加载可以忽略 不计,这种方法可以比较完整的展示 A.swf 的加载过程。但是,同时使用这种方法也引发 了一些问题,比如你在 A.swf 里与 web 端进行通信,使用了 loaderInfo 的 parameters 属性,则你在用 B.swf 加载 A.swf 后,通信将失效。这是因为 FlashVars HTML 参数只 影响主 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 端的通信。 综上所述,本文不是向大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆物品安全培训会课件
- 初二八校联考试卷及答案
- 棒球专业考试题库及答案
- 民族风课件教学课件
- 算力与新质生产力的关联
- 安全生产管理系统讲解
- 新质生产力的发展策略
- 文旅产品融入新质生产力探索
- 民族的课件教学课件
- 陕西新质生产力十大产业榜单
- 2025版全新离婚协议书:财产分割、子女抚养及离婚后财产保全合同范本
- 石油钻井知识课件
- “学回信精神·助改革发展”专题调研报告
- 2025年医学基础知识题库及答案
- (2025秋新版)苏教版三年级数学上册全册教案
- 职业院校实习生考核评价标准
- 水果保鲜的秘密课件
- 无人机公开课课件
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷:电子信息工程领域
- 仓库维修协议书
- 城管协管员面试题及答案
评论
0/150
提交评论