【问题标题】:AS3: Main stage listener for ProgressEvent?AS3:ProgressEvent 的主舞台监听器?
【发布时间】:2010-01-07 21:39:46
【问题描述】:

我可以向舞台添加 ProgressEvent 侦听器吗? 当我输入 Flex 时,我在任何自动完成选项中都看不到它。 人们通常如何获取整个主运行器的加载进度的进度读数?

我尝试以下操作,我希望看到 ProgressEvent 选项弹出:

stage.addEventListener(

谢谢...

【问题讨论】:

    标签: apache-flex actionscript-3


    【解决方案1】:

    尝试将其添加到 loaderInfo

    类似:

    this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    

    另外,如果您使用的是框架,您可能应该扩展 DownloadProgressBar。 我记得this old tutorial,但是网上肯定有很多。

    【讨论】:

    • 我应该提到我试图只保留这个项目。我将研究 loaderInfo 的选项。在这种情况下,首选的 AS3 方法是否仍然使用主 SWF 加载容器,该容器在您编译后加载主应用程序运行器 SWF?
    • 没有弹性框架?如果你想监听主 swf 的进度,那么它是 loaderInfo,对于一个 Loader 对象,它是 containerLoaderInfo
    • 嗯;这行得通,但是在我的网站加载时间和从进度处理程序接收任何反馈之间,我仍然会遇到巨大的延迟。我在屏幕上画了一些文字,表示加载完成的百分比,它似乎并没有太大的作用,因为进度进展得如此之快。 FWIW,我正在本地加载,我的所有 Loader() 请求并在站点加载后处理。否则我该如何测试?我必须与我的网站一起上线吗??
    • 在 flash ide 中你有一个模拟下载选项,但是对于 flex,你嵌入一个大文件只是为了检查预加载器,或者你在本地测试服务器上使用马虎:blog.betabong.com/2008/12/06/…跨度>
    • 嗯;无论我的网站是否上线都不起作用。还有其他事情发生;请在下面查看我新制定的问题(为了清楚起见,请参阅最初的问题)。
    【解决方案2】:

    我有一个新问题:

    我使用以下代码来显示我的网站内容的下载进度:

        public function mainProgress(e:ProgressEvent):void
        {
            var w:Number = e.bytesLoaded / e.bytesTotal;
            _mainprog.graphics.clear();
            _mainprog.graphics.beginFill(0x000000);
            _mainprog.graphics.drawRect(0, 0, w * stage.stageWidth, 50);
            _mainprog.graphics.endFill(); 
        }
    

    但它似乎不起作用。 发生的情况是 loaderInfo 对象 认为 在我真正准备好显示任何内容之前该站点已加载。所以最终发生的事情(我认为)是网站加载,加载程序进度在初始页面的图形完全加载之前消失,然后在 loaderInfo 对象完成和实际图形出现之间存在延迟。

    以前有没有其他人遇到过这个问题?

    谢谢...

    【讨论】:

    • 嗨,jml,如果我没看错,你有一个 swf,它是你的网站,你在其中嵌入了资产,mainProgress 加载器被添加到 this.loaderInfo,并且没有加载器对象?我的猜测是: 1. 如果是这种情况,您的加载器可能会以某个百分比(例如 30)开始显示有点晚 2. 预加载器看起来不错,显示了一个从 0 到舞台宽度的矩形,但是之间有轻微的延迟100% 和屏幕上显示的实际图形。我接近了吗?
    • 我定义了一些要绘制的图形——矩形、文本字段、基于舞台参数计算的 x y 坐标、传递的字符串、元素的颜色等,使用 Tweener() 添加补间,Tweener() 的onComplete 创建更多的精灵/文本元素,添加图形元素的侦听器,添加舞台侦听器,然后我将各种子元素添加到舞台。这都需要一些时间来加载。我有一个进度条应该在这一切发生时出现,然后当它发生时,应该初始化图形并将其添加到舞台,然后应该出现补间。
    • 在最后一句话中我的意思是说“......当所有这些都在设置时,然后当它发生时......”
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 2023-03-03
    • 2013-03-17
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多