很久没有发技术日志了,要来就来个完美的。您别激动,一个小小的loading谈什么完美,我想你看了就知道^_^
我的口号,将此文打造成全球最完善的非Flash初学者loading教程贴。转载请保留原文地址:
www.awflasher.com/blog/?id=444
首先,想说一下我写此文的动机。记得很早之前我曾经说过“没有loading的flash,不是完整的flash”。我想那个句话可能偏激了。因为有时候一些不到10k的flash,确实不需要做什么loading。但我始终认为,做一个优秀的loading是衡量一个flasher水准,甚至态度的。你问我为什么,我可以告诉你,因为loading是唯一一个你不会多看而所有用户、客户会看的东西,所以你对loading的重视程度,甚至可以反衬你这个flasher的职业道德!
有些做设计为主的朋友,我认识不少,他们对loading都是得过且过的态度,做一个loading,更多的是自己找一个现成的,然后每次去套用,我个人认为是很不好的习惯。并不是说我不提倡代码、元件的重用度,而是我觉得对于loading这种东西,套多了,是要出问题的。我强烈建议那些已经达到可以修改人家loading水平的flasher看看我的东西,当然,如果你连flash的as该写在哪都不知道,建议先入门了。
好,下面切入正题,如何制作loading。
首先要感激Macromedia的大智慧,提供了很好的两个函数使我们可以做出完美的loading,那就是getBytesLoaded和getBytesTotal。请不要再用你改来改去改了两三年的那个什么getFrameLoaded什么什么了,我都记不清楚怎么拼了。我只想说,Frame的观念将在真正的Interactive -Design中淡化。更别提什么Scene,那是Flash的败笔!
那么loading如何工作呢?我们如何利用这两个函数呢?这里要提到一个重要的概念。就是间隔调用。间隔调用有多种方式,下面列举出来,并列举出其在loading制作中的地位和用法,欢迎补充:
·setInterval方式
写法:
function loadCheck()
{
var p = getBytesLoaded()/getBytesTotal();
if (p==1)
{
clearInterval(intervalID); // 释放间隔调用
gotoAndPlay(someFrame); // 开始播放
}
}
var interval = 30; // 这个数值是刷新频率
var intervalID = setInterval(loadCheck,interval);
我个人并不推荐初学者用这种写法。因为很多人容易忽视clearInterval,而这个东西被忽视掉,是很恐怖的!如果你的setInterval没有给及时移除,意味着你将在整个swf的播放过程中增加一个没有必要的负担!
而且这种方法很不适合控制MoiveClip的状况(因为初学者会发现MC的路径是个大问题,而loadCheck本身就是个函数,还是被 setInterval调用的,要在loadCheck中指一个路径出来,挺麻烦的,你不要指望_root,那样会让你的程序不规范;也不要指望 this,因为在函数中用this似乎不太理想;最好什么都不写,但往往你不敢不写),进而做出更好的效果。
·onEnterFrame方式
我最喜欢的就是这种方法了。比较方便、直观。
因为往往我们是要用一个MC体现一个loading的进度,比如,一个进度条,或者更有创意的东西,只有你不能想到的,没有你不能做到的。
那么究竟如何用呢。首先,把创意定好。然后给你的MC一个实例名字,比如叫做loader_mc。这时候在timeline上写代码,记住,是 timeline而不是MC上。因为这样便于代码统一、便于路径统一、便于管理和寻找。别为了省几个字母就把代码通通搬到button,mc上面去,然后一个on(press)了事。除非你是在敷衍你的作品;或者你是在为了交作业。
loader_mc.onEnterFrame = function ()
{
var getTar:MovieClip = this._parent;
var p = getTar.getBytesLoaded()/getTar.getBytesTotal();
trace(p);
if(p==1)
{
this.onEnterFrame = null;
gotoAndPlay(someFrame); // 开始播放
}
}
就这么简单,记住,在MC的事件函数体内部引用MC,永远是一件很快的事情。因为this就可以指向这个MC本身,通过诸如this._parent之类的方法,可以找到你所有的MC!
·直接依赖于timeline的循环方式
非常非常非常古老的方式了,不介绍了。不过你们可以去问问那些一直不喜欢自己动手做loading的flasher,他们也许在改的某一个版本就是这个,呵呵。
以上算是比较简单的。比较容易出问题的,还有两个。
第一、MovieClipLoader
第二、含有多种V2组件的Loader
我买了回学校的火车票就继续写,哈哈
要是嫌不够,可以看我原创的这个loading特效,应用在我的作品集里面(作品别看了,巨烂无比,没时间做什么好东西),并看到源码
本文转自:http://www.5uflash.com/flashjiaocheng/Flash-loadingjiaocheng/2052.html
发表评论
-
利用装载字节数制作loading
2010-04-10 13:35 613终于搞定。。呵呵。。 ... -
经典的loading- 基础篇
2010-04-10 13:35 582很久没有发技术日志了,要来就来个完美的。您别激动,一个小小的 ... -
经典的loading- 基础篇
2010-04-10 13:34 510很久没有发技术日志了,要来就来个完美的。您别激动,一个小小的 ... -
经典的loading- 基础篇
2010-04-10 13:34 545很久没有发技术日志了,要来就来个完美的。您别激动,一个小小的 ... -
AS3 技巧和提示
2010-04-09 14:00 631原文见 [url=http://www.kirupa.co ... -
AS3 技巧和提示
2010-04-09 14:00 715原文见 [url=http://www.kirupa.co ... -
AS3学习笔记(1-6)
2010-04-09 14:00 600首先 say hello 一下,在输出面板 trace 出 ... -
AS3学习笔记(1-6)
2010-04-09 13:59 662首先 say hello 一下,在输出面板 trace 出 ... -
AS3学习笔记(7)-display
2010-04-09 13:59 597AS3里所有能在舞台(Stage)上看到的东西都继承自 Dis ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 11:50 531[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
AS3中实现一个函数返回多个值
2010-04-09 11:49 938var A_x:Number=4; var A_y:Numb ... -
AS3中实现一个函数返回多个值
2010-04-09 11:49 731var A_x:Number=4; var A_y:Numb ... -
as3画饼图
2010-04-09 11:49 1015上大饼图 //PS:大饼可以鼠标点击看效果 代码如下: /* ... -
as3画饼图
2010-04-09 11:49 748上大饼图 //PS:大饼可以鼠标点击看效果 代码如下: /* ... -
Flash绘制美丽风景画之海滩
2010-04-08 11:22 556过前段时间学习,我们掌握了鼠绘的一些初步知识,今天我们来综合一 ... -
Flash制作卷轴水墨画展开动画效果
2010-04-08 11:22 685北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅 ... -
Flash鼠绘入门第十三课:绘制美丽春日飞燕
2010-04-08 11:21 629相传燕子于春天社日北 ... -
跑动的小火柴人(flash动画)
2010-04-08 11:21 631本教程描绘的是完全用ActionScript做的一个火柴棍小人 ... -
Flash 8制作图片由模糊到清楚效果
2010-04-08 11:21 804以前记得是在哪个网站看到这个效果,但是怎么找也找不到了!所以给 ... -
用FLASH MX制作动画卡通人物(3)-给人物上色
2010-04-08 09:36 68611.开始上色了。一般情况下,用到的主要是填充工具 。上色的 ...
相关推荐
powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-classloading-xstream-1.4.7powermock-class...
前端项目-jquery-loading-overlay,A flexible loading overlay jQuery Plugin
前端项目-angular-loading-bar,An automatic loading bar for AngularJS
Android-react-native-loading-spinner-overlay.zip,反应本机加载微调器覆盖,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
前端开源库-loading-indicator加载指示灯,简单可定制的命令行空闲状态指示灯
Angular-ngx-loading-bar.zip,角@ngx加载条的自动页面加载/进度条,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web应用...
Angular-ng2-slim-loading-bar.zip,角2组件在页面顶部显示细加载条。角2细加载条,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发...
@ ngx-loading-bar Angular应用程序(http,http-客户端和路由器)的零配置全自动加载条。 配套 在路线之间导航时显示加载栏。 -显示@angular/common/http请求的进度。 手动管理进度条的核心模块。 演示版 在线...
org.liveSense.service.jcr.importexport.zip,用于jackrabbit的livesense导入/导出webconsole插件livesense用于jackrabbit的导入/导出webconsole插件
如何安装NPMnpm install --save js-loading-overlayYarnyarn add js-loading-overlayUse without NPM or Yarnimport 'js-loading-overlay'JsLoadingOverlay.show({'spinnerIcon': 'triangle-skew-spin'});...
前端开源库-loading-cli加载cli,终端加载效果。
网页设计常用ICON小图标-加载Loading-加载图标大全
React加载骨架为什么要使用react-loading-skeleton? 您应该使用它的第一个原因是开源该代码很容易编写。 渲染时间不慢定制的(尽管有任何复杂性,也可以在任何项目中使用) 良好的样式不会干扰您的样式。 (提示:...
166个等待图片-loading-gif图片,供大家下载学习使用
Angular-ng4-loading-spinner.zip,角度4自定义异步加载微调器.ng4-loading-spinner,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决...
svg-css3-loading-icons-易语言.zip
基本用法通过npm / yarn和react-loading-skeleton 。 import Skeleton from 'react-loading-skeleton' ;< Skeleton> // Simple, single-line loading skeleton< Skeleton xss=removed> // Five-line loading ...
In this article I want to discuss the lazy loading mechanism provided by NHibernate. It is recommended for maximum flexibility to define all relations in your domain as lazy loadable. This is the ...
wl-loading-源码.rar
前端开源库-react-loading-order-with-animation反应加载顺序与动画,反应加载顺序与动画