Flex PopUpManager模态问题

时间:2013-07-30 09:15:16

标签: actionscript-3 flex actionscript flex4.5

我有一个火花窗口容器,其中包含可下载的文件列表,单击文件后使用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 ,那么进度条不会显示在窗口上方,而是位于原始窗口后面的某个位置,无法看到。(我只看到一个部分它)

有人可以帮忙解决一旦删除弹出窗口后如何解决显示原始窗口的错误。

1 个答案:

答案 0 :(得分: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);
        }