gpt4 book ai didi

apache-flex - 修补 flex 框架以立即显示预加载器?

转载 作者:行者123 更新时间:2023-12-02 07:57:13 25 4
gpt4 key购买 nike

在 Flex 框架中,可以在加载网站时使用自定义预加载器。

Adobe docs它指定“如果在下载 700 毫秒后应用程序下载不到一半,则显示进度条 [preloader]。

但是我总是希望预加载器立即出现,因为我知道我们 95% 的用户是第一次访问者并且该网站超过 500kb。我不希望人们必须等待 0.7 秒才能显示预加载器动画。

我认为理论上可以通过“猴子补丁”框架来消除这个 0.7 秒的限制。我没有时间弄清楚怎么做,而且我以前从未这样做过。

有人帮忙吗?

最佳答案

您应该只扩展 DownloadProgressBar,尝试以下代码。我以前用过这个,我找到了 jesse warden 网站 click here 对这方面的信息很有用(我是在哪里发现的,这是他的代码的精简版)

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 类即可。

关于apache-flex - 修补 flex 框架以立即显示预加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com