当前位置:  开发笔记 > 编程语言 > 正文

Patch flex框架能够立即显示预加载器吗?

如何解决《Patchflex框架能够立即显示预加载器吗?》经验,为你挑选了1个好方法。

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

在Adobe文档中,它指定如果在下载700毫秒后下载的应用程序少于一半,则会显示进度条[预加载器]."

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

我认为理论上可以"修补"框架以消除这个.7秒限制.我没时间弄清楚如何,我以前从未做过.

有人帮忙吗?



1> 小智..:

您应该只扩展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类.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有