1

我有一个火花窗口容器,其中包含可下载的文件列表,单击文件时使用 URLStream 方法下载文件并使用 ProgressEvent 方法跟踪下载的文件百分比为:

stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);

现在在 progressHandler 方法中,我使用 popUpManager 在 titleWindow 中调用 preogressBar:

public function progressHandler(event:ProgressEvent):void
            {           
                tWin.title = "Please Wait";
                tWin.width=400;
                tWin.height=100;
                pb.width=300;
                pb.height=30;
                pb.labelPlacement="center";
                pb.label = "Downloading " + Math.round(event.bytesLoaded / event.bytesTotal * 100).toString() + "%";
                pb.setProgress(event.bytesLoaded, event.bytesTotal);
                tWin.addChild(pb);
                PopUpManager.addPopUp(tWin, this, true);
                PopUpManager.bringToFront(tWin);
                PopUpManager.centerPopUp(tWin);
            }

这里 tWin 和 pb 分别是我在上面全局定义的 titleWindow 和 ProgressBar。

同样在事件的 completin=on 时,我正在调用另一个函数来删除 popUpManager 为:

public function completeHandler(event:Event):void{
                PopUpManager.removePopUp(tWin);
                             }

现在,当我执行代码时,progressBar 弹出并显示进度并使原始窗口模态,因为我在 addPopUp 函数中将模态设置为TRUE,下载完成后,弹出窗口被删除,但窗口的模态保持为它是即窗口不可点击。

此外,如果我在 addPopUp 函数中将模态设置为FALSE,则进度条不会显示在窗口上方,而是位于原始窗口后面的某个位置并且看不到。(我只看到它的一部分)

任何人都可以帮助我解决这个在弹出窗口被删除后显示回原始窗口的错误。

4

1 回答 1

1

进度事件不应添加弹出窗口

    stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    stream.addEventListener(Event.OPEN, initProgress);




    public function progressHandler(event:ProgressEvent):void
        {     
            pb.width=300;
            pb.height=30;
            pb.labelPlacement="center";
            pb.label = "Downloading " + Math.round(event.bytesLoaded / event.bytesTotal * 100).toString() + "%";
            pb.setProgress(event.bytesLoaded, event.bytesTotal);  
        }

    public function initProgress(event:Event):void
        {
            tWin.title = "Please Wait";
            tWin.width=400;
            tWin.height=100;
            tWin.addChild(pb);
            PopUpManager.addPopUp(tWin, this, true);
            PopUpManager.bringToFront(tWin);
            PopUpManager.centerPopUp(tWin);
        }
于 2013-07-30T15:13:06.957 回答