推荐设备MORE

腾讯微信小程序—百度小程序

腾讯微信小程序—百度小程序

疑难问题

小程序转流应用教程-怎么制作一个loading

日期:2021-04-24
我要分享
--------

小程序转流应用教程

-------

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端通讯。
 

---------

小程序转流应用教程

------------