很早之前我曾经说过“没有loading的flash,不是完整的flash”。我想那个句话可能偏激了。因为有时候一些不到10k的flash,确实不需要做什么loading。但我始终认为,做一个优秀的loading是衡量一个flasher水准、甚至态度的,因为loading是唯一一个你不会多看而所有用户、客户会看的东西,所以你对loading的重视程度,甚至可以反衬你这个
flasher的职业道德。
* }& V. v5 F2 O6 F3 s1 X# o 我认识不少做设计为主的朋友,很多都是自己找一个现成的loading,然后每次去套用。我个人认为这是很不好的习惯。并不是说我不提倡代码、元件的重用,而是我觉得对于loading这种东西,套多了是要出问题的。我强烈建议那些已经达到可以修改人家loading水平的flasher看看我的东西。
: h2 D. V6 R( l
转载请保留原文地址:http://www.awflasher.com/blog/?id=444
: M. ?$ h& D; F* a# w
% B. _2 K* ~9 w! @. K 这个讨论共分为三部分:
$ [& _ n- l+ U5 C& T
1、基础
% ?% O( W. D; n
2、MovieClipLoader相关讨论(较深入)
9 S7 H" x: m3 a 3、V2组件相关问题
' ] a9 C5 |( G7 s- e6 W! i2 a- a& e& @$ m* @. S; F) v
今天我们主要介绍Flash的loading制作的基础。
: m5 V+ G9 _) V. g7 p4 \ 首先要感激Macromedia的大智慧,提供了很好的两个函数使我们可以做出完美的loading,那就是getBytesLoaded和getBytesTotal。请不要再用你改来改去改了两三年的那个什么getFrameLoaded什么什么了,我都记不清楚怎么拼了。我只想说,Frame的观念将在真正的Interactive-Design中淡化。更别提什么Scene,那是Flash的败笔!
* H7 A0 K" l2 N _5 }" W: V
那么loading如何工作呢?我们如何利用这两个函数呢?这里要提到一个重要的概念。就是间隔调用。间隔调用有多种方式,下面列举出来,并列举出其在loading制作中的地位和用法,欢迎补充:
5 K3 R' y" G. O' J
·setInterval方式' F% d4 P& E+ D4 c( f
写法:
复制内容到剪贴板
代码:
function loadCheck()
{
var p = getBytesLoaded()/getBytesTotal();
if (p==1)
{
clearInterval(intervalID); // 释放间隔调用
gotoAndPlay(someFrame); // 开始播放
}
}
var interval = 30; // 这个数值是刷新频率
var intervalID = setInterval(loadCheck,interval);