navigateToURL ...设置模态属性

时间:2010-09-07 02:10:21

标签: flex

当用户点击按钮时,我需要一个单独的浏览器窗口来弹出。如何设置应用程序的模态属性? (即,当弹出窗口打开时,主应用程序被禁用,直到该弹出窗口关闭...我需要使用浏览器窗口而不是弹出窗口,但无法弄清楚如何禁用主应用程序)

 PopUpManager.createPopUp (this, navigateToURL( url, "http://www.google.com" ) , true );

谢谢!

2 个答案:

答案 0 :(得分:1)

[[更新回答]] 好的,我的模态对话框看起来像这样:

cg = mx.managers.PopUpManager.createPopUp(this, ChoiceGrid, true) as ChoiceGrid;
PopUpManager.centerPopUp(cg);

但是,我会做什么而不是你要问的是,在模态弹出窗口中嵌入一个IFrame。这正是我们在应用程序中收集CC数据所做的事情(好吧,不是弹出部分,只是IFrame位。http://code.google.com/p/flex-iframe/

通过这种方式,您可以获得正在寻找的标准模式对话框,以及内部管理的“查看”到您的结帐服务器。像这样:

<code:IFrame id="iFrameWithJSfunctions"
             src="{checkoutURL}" />

flex-iframe在很大程度上非常容易使用。你不应该有很多问题。


[[原始答案]]
我不确定你需要一个PopUp才能做到这一点。

你为什么不这样做:

navigateToURL(urlRequest,"_blank");

代替?

答案 1 :(得分:0)

您应该将Flex App视为一个自包含的实体。 PopUpManager旨在创建驻留在SWF内另一个组件上的Windows(面板/任何UIComponent)。它不会创建弹出SWF或新浏览器窗口的项目。

navigateToURL可用于从Flex应用程序创建HTML弹出窗口。但是,SWF和浏览器之间的通信很少 - 如果有的话 - 弹出。并且没有办法制作模态弹出窗口。

您可以调查执行ExternalInterface调用并在JavaScript中创建新的弹出窗口。这是一篇关于创建modal windows in JavaScript的文章。在走太远之前,我会仔细考虑你的要求。如果一个浏览器窗口弹出另一个浏览器窗口并阻止您进行任何浏览,直到您解决该窗口中的问题,感觉如何。换句话说,如果Microsoft Word打开word文档并且在关闭第一个文档之前不会让你编辑任何其他文档,你会有什么感受?我很不高兴。

模态应用程序对话框是一回事。 PopUpManager允许您创建它们。我会认为模型应用程序窗口是一个糟糕的UI决定。