当用户点击按钮时,我需要一个单独的浏览器窗口来弹出。如何设置应用程序的模态属性? (即,当弹出窗口打开时,主应用程序被禁用,直到该弹出窗口关闭...我需要使用浏览器窗口而不是弹出窗口,但无法弄清楚如何禁用主应用程序)
PopUpManager.createPopUp (this, navigateToURL( url, "http://www.google.com" ) , true );
谢谢!
答案 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决定。