【导语】“已成年少女”通过精心收集,向本站投稿了11篇LOADING的测试,下面是小编精心整理后的LOADING的测试,希望能够帮助到大家。
- 目录
篇1:LOADING的测试
1. 延续「Loading 制作」教学单元,教您如何怼覆馐 Loading」!一般的测试电影,无法测试 Loading,会跳过 Loading Action,所以您无法看到 Loading 真正的动作,这里我们来教您密技!
Loading 测试:按主菜单「测试电影」,
2. 是不是跳过了 Loading,直接测试播放动画呢?
没关系,按主菜单「检视」,选择「预览设定」,
3. 出现频宽分析图,让您看得更清楚整个播放动画的过程及所占频宽大小...
4. 接着按主菜单「控制」,选择「28.8 ( 2.3 KB/秒 )」传输速率来测试播放动画。
( PS. 建议您选择「较慢」的传输速率来测试,目前大家的 Modem 应该都有「28.8 ( 2.3 KB/秒 )」传输速率以上,若选择「56 K ( 4.7 KB/秒 )」的话,速度有点点快,就无法真正感受 Loading 的存在,这是假设使用者的 Modem 传输速率,来浏览您的 Flash 动画!记得要考虑网络堵车喔)
5. 最后再按主菜单「检视」,选择「显示序列」选项,就会开始测试 Loading 了!
篇2:loading什么意思
loading的动词原形
loading除了用作名词,同时也是英语动词load的现在分词形式。load作动词可表示“把…装…”,常指把货物等装入交通工具中。可用作不及物动词,也可用作及物动词:用作及物动词时,其宾语可以是装进的东西,也可以是装东西的“容器”;用作不及物动词时,其主动形式可表示被动意义。
篇3:LOADING制作方法
为什么要作个loading呢?这是避免观众在等待比较大的文件时的不耐烦,而有了进度的表示,则会较好的避免了这一问题,需要注意的是,不要盲目做LOADING,只有在下载大的图片、声音文件时才有这必要!
本例子中,就使用了一个较大声音文件和一个3D动画文件。
1.选择好舞台的大小、背景;
2.引入例子中的声音文件;
3.这样lesson3的声音文件就被引入到了library中了!
4.同样,我们也引入了两个3D物件;
(至于这个3D是如何制作的,我将在以后的文章中详细说明,这里就不具体谈了)
5.这样,基本素材我们选取完毕了,开始制作进度条了。
我们先新建一个symbol
6.我们命名这个symbol为:“red line”,并设为“ Movie Clip”属性;
7.在这个“Movie Clip”中,我们建立一个表示进度的动画共10帧;
8.我们在建立一个新的symbol,命名为“red”属性为“Graphic”
9.把刚才作好的“red line” symbol,作个instance到此“red” symbol中,方法:从Library中直接拖 “red line” symbol;
10.我们所需要的道具都已经制作完毕了,现在我们回到舞台Scene上来.
因为声音和3D物件都是我们需要在LOADING中判断的物件,所以要单独分别放在各自的层中。
建立一个声音层(layer),命名“sounds”,建立一个3D物件的层,命名“cube”
11.我们在20、25帧处分别给“cube”,“sounds”设置一个keyframe
方法是:在相应帧点击右键,选择insert keyframe
在sounds层第20帧中添加“lesson3” 声音文件,在cube层中添加3D物件,
12.再添加一个welcome的信息(这个完全看你的兴趣爱好,并不是必须的!)
13.如何让我们的Flash文件及时通知用户文件的进展呢?下面的步骤就是关键了!
建立一个新的层命名为“action”
分别在第1、5、10帧处设置一个keyframe,并添加不同的文字物件
14.再再第5、10帧的后面一帧新建立一个keyframe,分别命名为“back1”,“back2”
15.下面就要用到了Flash中一个重要的核心内容Action命令了。
我们在第5帧的设计思想是:当判断第20帧(声音文件)已经被加载后,跳转到第10帧,进而由第10帧来判断3D文件是否被下载了。
运用Action中“If Frame. is Loaded”
在第6帧(label:back1)的设计思想是:如果在第5帧中的判断语句不成立,必然会执行第6帧,我们就循环来判断,直到判断成立(即声音文件上载成功) 我们用到的Action命令是:go to
同样的道理,我们在第10帧处判断3D文件上在成功后,就开始运行MAIN文件。(MAIN文件从20帧开始)
在第11帧跟第6帧的命令一样,作用也一样。
16.LOADING的关键部分已经完成了。我们现在要把进度条加上,使得这一个过程更为显眼。
新建立一个layer“red”
在第5、10帧处加上keyframe,并都将先前作好的“red” symbol,作个instance放到第5、10帧上。
方法还是一个字:”拖“
17.这样我们的loading就作完了。
总结:我的这个例子中用了两个判断语句,这是因为我的例子中有两个物件(声音、3D)比较大,如果你在做LOADING是,应该根据自己的实际情况来设置判断语句。
篇4:怎样制作loading?
loading
首先画一个长方形,转换为mc,定义为loader,在适当位置加入动态文本定义为k,然后在影片剪辑loader加入以下代码:onClipEvent(load){
btotal=_root.getBytesTotal;//让btotal等于总下载数;
}
onClipEvent(enterFrame){
bian1=_root.getBytesLoaded();//bian1等于已下载数;
persent=Math.round(bian1/btatal*100);//persent等于已下载数与总下载数的比,因为求百分数所以乘100;
_xscale=percent;//影片剪辑长度百分比随persent的大小变化;
_parent.k=persent+“%”;//在动态文本中显示下载百分比;
if(percent>=100){
在此输入想要做的事,如转入下一场景.}
大家还可以将mc用其他动作表示,原理是一样的
篇5:更加简单的Loading制作方法
loading
做一个100桢的MC动画;可以包含一个text的动态文本区,更加简单的Loading制作方法
。把该MC拖入主场景的首桢,并在首桢添加Stop,在该MC上加上如下代码:
onClipEvent (load) {
total = _root.getBytesTotal();
}
onClipEvent (enterFrame) {
loaded = _root.getBytesLoaded();
percent = int(loaded/total*100);
text = percent+“%”;
gotoAndStop(percent);
if (loaded == total) {
_root.gotoAndPlay(2);
}
}
篇6:Loading动画的制作
loading
Loading动画的制作(一)
说是Loading动画,其实只不过是用Fireworks4做的一段动画效果,千万别误会是Flash中的Loading哦,用Fireworks可不能进行编程,如果哪位会的话,请告诉我,呵呵, 实际效果是这样的。请看下图
(这是一个GIF动画)制作方法如下:
一、新建文件,新文件的尺寸大小为300*200,画布颜色为白色。
二、选择工具面板中的矩形工具,按住shift键,画一个正方形,填充颜色为红色,打开info面板,设置其W和H的值都为20,按回车表示确认,
三、选择这个红色的正方形,按F8键,在符号属性对话框中,选择其类型为Graphic,点击OK按钮。
四、使用菜单命令edit->clone,克隆这个实例,这时二个实例处于同一个位置,上下重叠。再使用菜单命令modify->transform->numeric transform,也可以使用快捷键Ctrl+Shift+T.
转自:动态网制作指南 www.knowsky.com
篇7:标准的loading制作方法
loading|标准
前言:网络中的swf影片是可以实现边下载边播放的,由于受到当前网络传输的制约,对于大容量的影片,这种实时播放并不理想,为避免受众尴尬的等待,flash制作人员往往设计一个加载(loading)的画面,等影片的全部字节下载到本地后再播放,从而保证影片的播放质量.本文将介绍一种较为标准的loading制作方法。
步骤:
1.打开Flash MX 2004,选择矩形工具,在主场景中画出下一个只有边框有矩形,本例该矩形大小为350*16像素。
2.再在主场景中仍用矩形工具画出一个只有填充而无边框的矩形,并按F8键将其转换为影片剪辑(注:其注册点一定要选在该矩形的最左侧),其实例名为bar 。本例该矩形大小为345*11像素。
3.将上述两矩形在主场景中排列好,使边框矩形嵌套填充矩形。
4.在上述两矩形旁边用文字工具拖出一动态文本框,其变量名为bar_per。
至此,准备工作就绪,即建立了两矩形框和一动态文本框,下面准备编写代码。
5.在主场景中,新建一层,选中该层第1帧,按F9键打开动作脚本编辑窗口,输入以下代码:
顺应热潮,Macromedia公司也开发了在手机上应用的Flash动画播放器:Flash Lite 1.1。最初这个播放器只能应用于i-mode手持设备,后来索爱、诺基亚品牌的一些手机也能使用这个播放器了。在今年市面上已经可以看到捆绑了Flash Lite 1.1的手机,尤其是三星手机和Macromedia达成了合作协议,全面支持Flash Lite 1.1。
this.onLoad=function{
myBytesTotal=_root.getBytesTotal();
}
this.onLoad();
this.onEnterFrame=function(){
myBytesLoaded=_root.getBytesLoaded();
bar_xscale=myBytesLoaded/myBytesTotal*100;
percent=Math.round(bar_xscale);
this.bar._xscale=bar_xscale;
this.bar_per=percent+“%”;
if(myBytesLoaded==myBytesTotal){
delete this.onEnterFrame;
_root.nextFrame();
}else{
this.stop();
}
}
6.从主场景时间轴第2帧起制作你的flash影片。
注解:
①
this.onLoad=function(){
myBytesTotal=_root.getBytesTotal();
}
此段代码是指,当影片剪辑(本例指两矩形和一动态文本框所存在的主场景)加载时,读取主时间轴存在的所有元素的总字节数并赋值给变量myBytesTotal。
②
this.onLoad();
flash事件处理函数MovieClip.onLoad=function(){…}有些奇怪,其中设置的代码,若不在后面加上this.onLoad();,这些代码并不能执行,因此加上这一句以便这些代码得以执行。
③
myBytesLoaded=_root.getBytesLoaded();//读取主时间轴存在的所有元素已加载的字节数,并将其赋值给变量myBytesLoaded。
④
bar_xscale=myBytesLoaded/myBytesTotal*100;//将myBytesTotal折算成100时,myBytesLoaded所得到的折算值赋给变量bar_xscale,以便给主场景中bar的_xscale赋值(_xscale的最大值只能为100),这里用到了初等数学的比例计算,
⑤
percent=Math.round(bar_xscale);//将变量bar_xscale的值取整后赋给变量percent,以便显示的百分比不带小数。
拓展:
1.“下载速度”的代码设计
①在主场景中用文字工具拖出有适当宽度的动态文本框,并设其变量名为rate 。
②在主场景代码层第1帧this.onEnterFrame=function(){}代码体if语句前追加如下代码:
t=getTimer();
rate= “下载速度:” + Math.round(myBytesLoaded/t * 100)/100 +
“ K/s”;
2.“已用时间和剩余时间”的代码设计
①在主场景中用文字工具拖出有适当宽度的动态文本框,并设其变量名为mytimes 。
②在主场景代码层第1帧this.onEnterFrame=function(){}代码体if语句前追加如下代码:
timeLoaded=Math.round(t/1000);
timeRemain=Math.round(timeLoaded*(myBytesTotal-myBytesLoaded)/myBytesLoaded);
timeRemain=Math.round(timeRemain/60)+“:”+Math.round(timeRemain%60);
timeLoaded=Math.round(timeLoaded/60)+“:”+Math.round(timeLoaded%60);
mytimes=“已用时间”+timeLoaded+“ ”+“剩余时间”+timeRemain;
注:若“下载速度”的代码没有设计,则上述代码前应追加代码 t=getTimer();
拓展后主场景代码层第1帧的全部代码如下:
this.onLoad=function(){
myBytesTotal=_root.getBytesTotal();
}
this.onLoad();
this.onEnterFrame=function(){
myBytesLoaded=_root.getBytesLoaded();
bar_xscale=myBytesLoaded/myBytesTotal*100;
percent=Math.round(bar_xscale);
this.bar._xscale=bar_xscale;
this.bar_per=percent+“%”;
t=getTimer();
rate= “下载速度:” + Math.round(myBytesLoaded/t * 100)/100 +
“ K/s”;
timeLoaded=Math.round(t/1000);
timeRemain=Math.round(timeLoaded*(myBytesTotal-myBytesLoaded)/myBytesLoaded);
timeRemain=Math.round(timeRemain/60)+“:”+Math.round(timeRemain%60);
timeLoaded=Math.round(timeLoaded/60)+“:”+Math.round(timeLoaded%60);
mytimes=“已用时间”+timeLoaded+“ ”+“剩余时间”+timeRemain;
if(myBytesLoaded==myBytesTotal){
delete this.onEnterFrame;
_root.nextFrame();
}else{
this.stop();
}
}
篇8:Loading,让烦躁少一些
前一阵子,接到一个app切图制作加载圆形进度条的任务,看到那个小进度条转啊转的,我若有所思…同时,一个做印象派制作间控件设计的同学最近做了改版,那个控件登陆需要一些时间,看到他对loading加载条进行了优化,然后就一起交流了一下,作为一个刚毕业入行不久的新人,请允许我分享一下关于讨论loading加载后的一些心得…
这是一个浮躁的年代,长听到这样的抱怨“好慢!”“等到死!”,每次看到那个转啊转的圈圈,或者是那个“loading…”后面那三个点不停滴闪动,心里总是有莫名的焦躁,彼时的心情就好像下面这张图片一样,不知您是否有同感…
有人统计,用户能够忍受的最长等待时间大约在 6~8秒之间。8秒是一个临界值,如果网页加载时间在8秒以上,很有可能大部分访问者最终都会离开该页面。除非他一定要打开那个页面。
以上三种是常见的loading方式,如果是我,我更希望看到第三种的进度条,因为我实在不知道第一个圈圈要转多久才能算加载成功,也不知道第二个点点点要点到猴年马月,
但是如果这个时候,界面除了看到“加载”以外的东西,是否就能转移用户的注意力呢?比如我们在银行排队的时候,如果我们无时不刻看着自己手中的号码牌和叫号板,虽然知道自己大概什么时候会轮到,但是依旧会无聊和烦躁。这时候银行里的一些宣传单起到了很好的作用:比如各种银行的理财产品,如果你不小心还看到了适合自己投资的,肯定会激动不已,觉得这个等待时间给自己带来的意外的收获,即使没有得到自己想要的信息,也不会觉得那么无聊了。又比如视频在缓冲的过程中,总是会放一段广告,我一直弱弱滴认为这个好鸡肋,舍不得放弃看那个视频,但又要忍耐这个加载时候的广告。但是如果广告做得很棒,就一点都不烦躁了,甚至还在评论里看到求加载广告的地址。网页的loading就承担了宣传单跟加载广告的作用。
在页面局部加载时常能看到第一个圈圈的身影,不过每次看到这个圈圈都差不多,如果换一种转圈的形式,也许会觉得“这个圈圈跟别的好像不太一样”,通过好奇减少等待的焦躁。
下面我找了一些变过形的圈圈,是不是多了一些新意呢?
篇9:loading是加载的意思吗
loading的中文释义及用法介绍
1、当loading译为加载的含义时,是现在进行时态,表示正在加载,即正在加载游戏数据。
2、当loading译为附加工资、附加费用时,是作为名词。
例句:The 2% loading for using the card abroad has been removed.
在国外使用此卡的'2%附加费已经取消。
Meanwhile, prove the reinsurance can decrease the security loading and the pricing of insurance product.
并且解释了再保险可以降低安全附加费,从而降低保险商品的定价。
3、当loading译为装上,装入;承载;装载;大量给予的含义时,是作为动词,是load的现在分词形式。
例句:He drove by with a big load of hay...
他载着一大车干草驶过。
I knew how to load and handle a gun.
我知道怎么上子弹,也知道枪怎么用。
An efficient bulb may lighten the load of power stations...
一个节能灯泡也许就能减轻发电站的负荷。
I saw him loading up his fishing gear.
我看到他在把钓鱼玩意装上车。
篇10:完美的loading―完美到底
loading
首先,想说一下我写此文的动机,记得很早之前我曾经说过“没有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
读取外埠数据参与Flash应用程序部署是一件非常重要和常见的工作,尤其是我们常常需要检测这些数据加载的进度。而MovieClipLoader(下称MCL)类却帮我们大大简化了这项麻烦工作。此外,它使得我们能获取更多的需要,并减少代码量。我们可以用一个单独的MovieClip类来载入一个,或者多个外埠资源到指定的MC或者层级,或者我们可以为每一个加载工作制定不同的MCL实例。
我决定分两部分来完成这篇教程。首先,我们将介绍MCL的基本用法;然后我们将介绍如何使用一个单独的MCL实例来读取外埠资源到不同的MC,并且,我们将加入侦听器对象来参与工作。当然,不通过侦听器也可以完成任务,我们暂时不介绍侦听器,因为这样你会更加容易理解MCL。
那么,我们首先来大体了解一下MCL有哪些回调函数,后面也会有详细介绍(aw附:回调函数我个人理解就是某一个类组、参数事先确定,拥有指定功效的方法)这里可以了解一下什么叫做回调函数):
MovieClipLoader对象的回调函数:
事件回调函数(严格要求数据类型的时候,它们并不是方法,后祥):
* MovieClipLoader.onLoadStart() - 当加载开始的时候触发
* MovieClipLoader.onLoadProgress() - 在读取进行中触发
* MovieClipLoader.onLoadInit() - 读取资源载入后的第一帧执行完成后触发
* MovieClipLoader.onLoadComplete() - 当读取的外埠资源已经完全下载到本地时触发。
* MovieClipLoader.onLoadError() - 当加载外埠资源出错时触发。
* MovieClipLoader.unloadClip() - 将加载的外埠资源移除或终止一个加载工作。
方法回调函数:
* MovieClipLoader.getProgress(target:Object):Object - 读取外埠资源的进展,参数为MC对象(aw附:其实MC这种数据类型也就是一种对象)。返回一个对象,该对象包含两种事先预定好的属性(后祥)
要想好好理解这些回调函数,我们动手试验一下是最好的方法。当然MCL是Flash7之后才有的,所以别忘了发布的时候发布成为7+的版本号。如果直接用FlashPlayer来调试可能会遇到一些问题,我们推荐在浏览器中进行调试(个人意见:对于外埠资源难以获得情况,比如教育网获取公网资源,最好不要在IDE中调试)
在我们的例子中,我们将用一个MCL对象来读取不同的图片,并将它们置入不同的空MC中。本例中要用到的swf文件和图像源文件将在Actionscript.org找到(个人建议:其实看完这篇文章要不要源文件没有必要了)
1、建立一个新的Flash文档,并在第1帧输入以下脚本:
_root.traceBox.vScrollPolicy =“on”;
function myTrace(msg)
{
_root.traceBox.text += msg + newline;
_root.traceBox.vPosition = _root.traceBox.maxVPosition;
}
我们这里是在建立一种跟踪调试机制,调试的(变量)将输出到文本框组件中。这里的方法“myTrace”是预先定义好的一个函数,它帮助我们顺利完成对某些信息的监控;其中第二句的作用是使文本框随时输出最新监控值。
2、现在从组建库托拽一个TextArea组件进入场景,并给以合适的大小,以及一个实例名称traceBox(对应上面的脚本)
3、接下来,我们要建立一个新的MC元件。并在场景上部署3个实例,为它们分别命名为myMC1,myMC2,myMC3。我们将把图片或者swf影片装载进入它们,并且,在它们下载到本地后按照需求调整它们的尺寸。其实,对图片人为地改变尺寸会造成许多不好的后果,比如锯齿的产生,但是为了让大家了解onLoadInit事件的使用,我们将会这么做。
4、然后,我们建立一个MCL对象,在第一帧输入以下脚本:
var myMCL = new MovieClipLoader();//create an instance of MovieClipLoader
aw附:这里我想罗索以下,关于Object的翻译。因为上述代码的注释中,老外用的是instance这个词,直译的话,Object是“对象”;Instance代表“实例”。前者更注重于其数据类型,而后者则更注重于其客观存在性。
5. 现在我们就可以部署脚本了,在第一帧:
myMCL.onLoadStart = function (targetMC)
{
var loadProgress = myMCL.getProgress(targetMC);
myTrace (“The movieclip ” + targetMC + “ has started loading”);
myTrace(“Bytes loaded at start=” + loadProgress.bytesLoaded);
myTrace(“Total bytes loaded at start=” + loadProgress.bytesTotal);
}
这个函数的第一行中申明了一个(对象类型的)变量,显然,这个变量的值由myMCL对象的getProgress方法获得.刚才已经介绍了getProgress方法,这里可以看到,返回的loadProgress.bytesLoaded就是loadProgress对象的bytesLoaded属性.
这里我再嗦一句:为什么返回一个对象,而不返回具体的值。这是有原因的。函数返回值的功能使得程序设计更加完美,然而很多情况下,我们要返回的并非一个值,我们可能返回两个或者更多的值,甚至它们的数据类型都不相同。这样,只有通过对象的形式来返回了。这是解决问题最简单最高效的方法。下面三句myTrace就呼应了之前我们定义的监控函数,这样就能看到我们关注的变量了。
6、我们已经为onLoadStart事件部署了相应的工作,接下来我们要为上述其他事件部署工作了。紧接着是onLoadProgress,它接受三个参数:targetMC, loadedBytes, totalBytes。分别代表目标容器MC实例;已经读取的体积、总体积。
myMCL.onLoadProgress = function (targetMC, loadedBytes, totalBytes) {
myTrace (“movie clip: ” + targetMC);
myTrace(“Bytes loaded at progress callback=” + loadedBytes);
myTrace(“Bytes total at progress callback=” + totalBytes);
}
7、我们的onLoadComplete方法仅接受一个参数,它就是容器MC实例。像onLoadStart一样,我们用getProgress方法来返回读取情况。
myMCL.onLoadComplete = function (targetMC)
{
var loadProgress = myMCL.getProgress(targetMC);
myTrace (targetMC + “ has finished loading.”);
myTrace(“Bytes loaded at end=” + loadProgress.bytesLoaded);
myTrace(“Bytes total at end=” + loadProgress.bytesTotal);
}
8、onLoadInit方法将在所有加载的内容被下载到本地容器MC中之后才开始执行。这将使得你能更好的控制加载进来的内容的属性。我选择的图片非常大,这样我们可以把读取过程看得更加清晰,而我也要对已经加载的图片尺寸进行修整,让它能全部显示出来。
myMCL.onLoadInit = function (targetMC)
{
myTrace (“Movie clip:” + targetMC + “ is now initialized”);
targetMC._width = 170;
targetMC._height = 170;
}
9、还有一个回调方法onLoadError。如果有错误发生,它将会被触发。作为一个优秀的程序员,部署完善的应用程序的时候,对错误发生的避免措施是必不可少的!
myMCL.onLoadError = function (targetMC, errorCode)
{
myTrace (“ERRORCODE:” + errorCode);
myTrace (targetMC + “Failed to load its content”);
}
10. Well that's the hard work out of the way. Now we just have to load the files in to their respective targets, using loadClip, and passing it two arguments: the location of your file, and the destination movieclip for the file to load in to.
10、我们终于将最复杂的工作部署好了,
接下来我们只用使用loadClip方法读入我们需要的内容就行了。loadClip方法的两个参数分别是外埠资源的地址和容器MC的实例。
myMCL.loadClip(“www.yourdomain.com/test1.swf”,“_root.myMC1”);
myMCL.loadClip(“www.yourdomain.com/test2.swf ”, “_root.myMC2”);
myMCL.loadClip(“www.yourdomain.com/pic.jpg”, “_level0.myMC3”);
路径可以选择相对路径。注意,路径的相对性也是一个大问题,当SWF在非本路径的HTML中被引用的时候,遵从HTML所在的路径!这一点是很多Flash教程都忽视的。所以,有时候绝对路径也有绝对路径的好处。[路径问题源文件下载,下载了就一目了然了
所有的调试工作最好在浏览器中,而非IDE中完成。而且脚本输出方式必须是AS2。
Remember, for everything to work properly you need to be testing throuhg a browser (and preferably on line so you can see the files loading in real time). You also need to be exporting your code as ActionScript. 2.
In the second part of this tutorial I'm going to show you how to use the MovieClipLoader class in a real-world situation, in order to solve a common problem when assigning event handlers to MovieClips dynamically.
接下来,我将介绍实时调用MCL的情况。为了能适应更多的应用,我们经常动态地为MCL制定工作。
aw话外音:有时候,我们如此写:
1、var mcl:MovieClipLoader = new MovieClipLoader ();
2、var mcl = new MovieClipLoader ();
发现第一种写法无法为MCL制定onLoadStart等事件方法。这是编译器根据指定变量的数据类型产生的问题。osflash的一些朋友给了一些有用的观点,我也发现这个问题正好涉及到Flash内部的事件响应机制,不妨介绍一下:
Flash的三种事件响应机制
1、简单的回调函数,最老的;
2、侦听器,ASBroadcaster,FlashMX时代;
3、事件侦听器,EventDispather,FlashMX2004时代
这里,MCL用的是第二种机制,而整套V2组件则使用最后一套机制。
附:MCL官方申明,注意:上述方法中,仅包含getProgress方法!
intrinsic class MovieClipLoader
{
function MovieClipLoader();
function addListener(listener:Object):Boolean;
function getProgress(target:Object):Object;
function loadClip(url:String, target:Object):Boolean;
function removeListener(listener:Object):Boolean;
function unloadClip(target:Object):Boolean;
}
个人补充认为:1、2在不严格要求数据类型的时候可以通用。
下面开始介绍用侦听器来检测MCL事件的方法。在此之前,我们解决一个最常见的问题,我们经常会在论坛中看到有人这样提问:
引用 :
大家好,我动态地建立了一些MC,并逐个分配给它们一个事件句柄(标志)。然后,我将外埠资源读取到它们之中。但是这些分配好的事件句柄都不工作了!
紧接着,发问人一般会贴出一对乱七八糟的代码,并大呼救命。
那么,我们首先来分析一下这个错误发生的原因:当外埠资源被载入到一个MC中时,这个MC将会重新初始化。这意味着任何被预先制定好的代码都将付之东流。对于开发人员已经手动在舞台上安排好的MC则并没有相关的麻烦,这是因为任何直接通过onClipEvent制定到MC的代码都能幸免被重新初始化。而动态建立的MC则进行上述的“初始化”,因为我们是在运行中给它们配置的事件代码。
我们如何避免这个问题呢?其实方法太多了,很多论坛也进行了极为详细的讨论,我就不多赘述了。
你现在也许还记得刚才我介绍的“读取外埠数据参与Flash应用程序部署是一件非常重要和常见的工作,尤其是我们常常需要检测这些数据加载的进度”
我们已经介绍了MCL的几个回调函数,所以这里也不再赘述了。我们现在制作这样一个效果:缩略图标式的图片浏览系统。我们将要从外部读取一些JPG图片,将它们放入我们动态部署的MC中。并且我们希望这些动态建立的MC都具有各自的onPress事件。我们通过在MC装载好外部资源之后再为之分配事件。
在我们开始之前,我还想提醒大家注意一些经常出现的疏漏:一定要在发布的时候设置成Flash7+AS2以上的版本;其次,用浏览器测试你的效果,而不是IDE;否则你将会得到奇怪的结果。
现在,我们开始编制代码,你会发现它比你想象的要简单得多。
1、新建一个Flash文档。
2、找四张100*100像素的缩略图片。
3、建立一个动态文本框,大概在300*300像素左右,使用12号字体,并使之现实边框,这样我们更好监测。别忘了设置它为多行的。
4、建立一个100X100像素的矩形,转变为MC,然后将它移出场景。这时候,他已经出现在库中了。在库中,设置他的链接名为“img”,并使其“在第一帧导出”。其实这个矩形会在外部资源载入的时候被取代,现在只是为了调试方便。
5、在刚才放置textBox文本框的层之上新建一层,这一层用于放置我们的代码,先写上:
stop();
6、现在我们定义一个MCL的实例,此外定义一个基本对象,作为我们的侦听器:
myMCL = new MovieClipLoader(); //define MovieClipLoader
myListener = new Object(); //define listener
7、接下来我们用侦听器来侦听onLoadComplete事件,该事件的作用上文已经提到了。我们现在把它交给listener对象,而不是MCL实例。当然,最终要把侦听器对象再交回MCL(以侦听其回调函数)的时候,得到的效果就是我们需要的效果了。
记住,只有当读取完毕的时候,对MC部署事件任务才是安全可靠的!所以,在onLoadComplete被触发的时候才部署这个onPress事件给MC:
myListener.onLoadComplete = function(targetMC){
debug.text += “LOADING OF ” + targetMC
+ “ COMPLETE” + newline;
targetMC.onPress = function() {
debug.text += newline
+ “targetMC = ” + targetMC._name;
}
}
注:上述代码中有几行被人为打断,但这并不影响效果。
你也许已经注意到了,MC的实例名称在onLoadComplete被触发的时候是作为一个参数的身份传递给onLoadComplete的,这样我们控制这个MC就非常方便了。比如这里就可以用点击MC来检测事件是否被成功部署给MC。
8、现在我们建立一个函数,它包含一个简单的循环来部署场景上的MC。并且及时地为每一个部署好的MC分配读取外埠资源的任务(loadClip方法),代码如下:
function initClips(){
for (i=1; i<=4; i++){
this.attachMovie(“img”, “img” + i, i);
this[“img”+i]._x = i*110;
myMCL.loadClip(“0” + i + “.jpg” ,
this[“img”+i]); //code wrapped
}
}
9、到这里基本上就完成了。现在我们剩下的工作就是注册侦听器并且按照需求调用相关函数、方法,反映到代码上就是以下两行:
myMCL.addListener(myListener);
initClips();
注意这里的顺序,我们的侦听器对象在调用initClip()函数之前就被作用于MCL实例了。现在我们的MC的onPress事件可以顺利工作了,因为当图片被完全读入之后,事件才被分配过去。我们的代码也非常简洁。我们再也不用为了loading而去制作麻烦的循环了,MovieClipLoader帮我们完成了所有工作!
附:完整代码如下:
stop();
myMCL = new MovieClipLoader();
myListener = new Object();
myListener.onLoadComplete = function(targetMC)
{
targetMC.onPress = function ()
{
trace(“pressed”);
}
}
function initClips()
{
for (i=1;i<=4;i++)
{
this.attachMovie(“img”,“img”+i,i);
this[“img”+i]._x = i*110;
myMCL.loadClip(url,this[“img”+i]);
}
}
myMCL.addListener(myListener);
initClips();
到此为止,你应该相信MCL确实是一个不可多得的好东西了吧?
V2,也爱,也恨!这里介绍关于含有V2组件项目的loading问题
V2组件自面世以来就颇受争议,大体概括如下:
优点:
1、界面比V1组件更加美观、统一,人机交互模式更加完善
2、均采用面向对象脚本部署
缺点:
体积笨重,开发一些只用到一两个组件的小应用程序时很尴尬。
消息机制方面使用EventDispather的消息广播机制,取代原有的AsBroadcast机制。使得刚出来的时候很多人根本不会用。
这里就不讨论更多了,先说loading。含有大量v2组件的产品要想见人肯定是不能不作loading的,比如aw's blog左边的那个blog小贴士。然而每次在loading的时候似乎都会遇到麻烦。那就是笨重的体积全部被放到第一帧导出了,这样导致对一些300k以内的,含有v2组件的SWF文件进行远程载入的loading效果变得捉襟见肘。
解决的办法也不是没有,简单概括为三个步骤:
一、去掉“Export in first frame”
二、在发布的时候设置一下“Export frame. for classes”,这一点非常重要!
三、对于外埠读取的含有V2的swf文件,将容器mc进行如下设置:
loader_mc._lockroot = true;
好了,现在放心享受精彩而笨重的V2组件吧~!
篇11:外贸英语:货物装运 Loading & Shipment
The shipment has arrived in good condition.
运到之货情况良好。
I hope you'll be entirely satisfied with this initial shipment.
我希望您能对第一批货感到满意。
Please exercise better care with future shipments.
对今后装运的货,请多加注意。
We regret we can't ship as you desired.
很抱歉,我们不能按你们的要求装船。
We'll send vessels to pick up the cargo at Huangpu.
我们将派船只在黄埔装运。
There is an over-shipment of 200 pounds.
货物多装了200磅。
Can we short-ship 5 tons?
我们可以少装5吨吗?
Please hold shipment pending our instructions.
请在我们通知之前暂停装货。
The goods are all ready for shipment.
货物已经准备好待装运。
I've got a bone to pick with you over your last shipment to London.
关于上次装运到伦敦的那批货,我不得不抱怨你。
The cargo has been shipped on board the SS “Dong Feng”.
货已装上“东风”号轮船。
We ship most of our oil in bulk.
我们装运的油多数是散装的。
The facilities for shipping goods to Southeast Asian countries have changed a lot.
出口到东南亚的货物的装运条件已大大改善了。
★ 《定**》测试
★ 测试员工作总结
★ 系统测试总结
★ 测试岗位职责定义
★ 测试道德标准
★ 智商测试题目
★ 变革意识测试
★ 测试的作文
★ 测试人员年终总结
LOADING的测试(共11篇)




