在Flex框架中,可以在加载网站时使用自定义预加载器.
在Adobe文档中,它指定如果在下载700毫秒后下载的应用程序少于一半,则会显示进度条[预加载器]."
但是我总是希望预加载器能够立即显示,因为我知道95%的用户是第一次访问者,而且网站超过500kb.我不希望人们必须等待.7秒才能显示预加载器动画.
我认为理论上可以"修补"框架以消除这个.7秒限制.我没时间弄清楚如何,我以前从未做过.
有人帮忙吗?
您应该只扩展DownloadProgressBar,尝试以下代码.我以前用过这个,我找到了jesse warden网站 点击这里 usful获取这方面的信息(我在那里发现了它,这是他的代码的减少版本)
package{ import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import mx.events.FlexEvent; import mx.preloaders.DownloadProgressBar; public class Preloader extends DownloadProgressBar { /** * The Flash 8 MovieClip embedded as a Class. */ [Embed(source="yourPreloaderFile.swf")] private var FlashPreloaderSymbol:Class; private var clip:MovieClip; public function Preloader() { super(); clip = new FlashPreloaderSymbol(); addChild(clip); } public override function set preloader(preloader:Sprite):void { preloader.addEventListener( FlexEvent.INIT_COMPLETE , onFlexInitComplete ); centerPreloader(); } private function centerPreloader():void { x = (stageWidth / 2) - (clip.width / 2); y = (stageHeight / 2) - (clip.height / 2); } private function onFlexInitComplete( event:FlexEvent ):void { dispatchEvent( new Event( Event.COMPLETE ) ); } protected override function showDisplayForDownloading(time : int, event : ProgressEvent) : Boolean { return true; } }
}
之后,只需将主应用程序标记中的preloader属性更改为Preloader类.