【问题标题】:as3 loading screenas3载入画面
【发布时间】:2012-07-11 19:59:15
【问题描述】:

如何为您的 swf 创建这些带有加载栏和百分比的“正在加载,请稍候”启动画面? as3 有一些内置方法还是应该从头开始设计?

我的意思是,您如何检测到您的 swf 文件正在加载到客户端的浏览器中?

哦,我的所有内容都只存储在一帧中。纯as3代码。

【问题讨论】:

    标签: actionscript-3 screen loading splash-screen


    【解决方案1】:

    如果您的所有代码都在时间轴上,那么最简单的方法是制作第二个 swf,仅用于加载您的主 swf。如果您的主 swf 名为 main.swf,则加载 swf 中的代码将是这样的:

    //make a loader
    var loader:Loader = new Loader()
    
    //listen for loading progress
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
    
    //listen for when the load is finished
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
    
    //load begins...
    loader.load(new URLRequest("main.swf"));
    
    function onProgress(event:ProgressEvent):void
    {
        //calculate how much has been loaded
        var percentageLoader:Number = event.bytesLoaded / e.bytesTotal;
        
        //use your percentage number here to drive a loader bar graphic
    }
    
    function onComplete(event:Event):void
    {
        //remove listeners now that loading is done
        loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
        loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onComplete);
        
        //add loaded swf to the stage
        addChild(loader.content);
    }
    

    顺便说一句,外部化您的资产开辟了新的预加载可能性。您可以让主 swf 加载外部资产并预加载这些资产,而不是将所有内容都放在主 swf 中。由于您的主 swf 会变小,因此没有必要仅使用第二个 swf 来加载您的主 swf。

    【讨论】:

    • 谢谢,我想我会走这条路的。
    【解决方案2】:

    有几种不同的方法可以做到这一点。

    您可以有一个两步过程 - 创建一个简单地加载到主文件中的 swf 文件,报告进度(通过侦听加载器上的进度事件),然后将加载的 swf 添加为子文件。

    或者,您可以将所有内容放在第 2 帧,并停留在第 1 帧,检查 root.loaderInfo.bytesLoaded 与 root.loaderInfo.totalBytes 值的比较,报告百分比,然后在完成后移至第 2 帧。

    就个人而言,我认为方法 1 更好,因为您不需要用框架来玷污自己。

    还有第三种方式,它使用一些奇怪的元数据标签来模拟第二种方式,但没有框架。有点乱,但应该可以用谷歌搜索。

    【讨论】:

      【解决方案3】:

      Flash 有自己的组件,您可以使用它来完成此操作:

      http://help.adobe.com/en_US/ActionScript/3.0_UsingComponentsAS3/WS5b3ccc516d4fbf351e63e3d118a9c65b32-7fa4.html

      或者您可以从头开始构建自己的进度条:

      http://www.zedia.net/2008/the-right-way-to-do-a-preloader-in-as3/

      网络上有很多资源可让您自定义进度条 - 浏览并找到适合您和您的编码风格的资源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多