2010-09-07 72 views
0

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

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

谢谢!

回答

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}" /> 

柔性的iframe,是很容易的工作,在大多数情况下你不应该有很多问题,它


[[原创]]
我不确定你需要一个PopUp来做到这一点。

你为什么不干脆做:

navigateToURL(urlRequest,"_blank"); 

呢?

0

您应该将Flex应用程序视为一个独立实体。 PopUpManager旨在创建位于SWF内部的另一个组件上的Windows(面板/任何UIComponent)。它不会创建从SWF或新浏览器窗口中弹出的项目。

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

您可能会调查执行ExternalInterface调用并在JavaScript中创建新的弹出窗口。这里有一篇关于创建modal windows in JavaScript的文章。在走这条路之前,我会仔细考虑你的要求。如果一个浏览器窗口弹出另一个浏览器窗口,并且在您解决该窗口中的问题之前无法进行任何浏览,会有什么感觉。或者换一种说法,如果Microsoft Word打开一个Word文档并且在关闭第一个文档之前不让其他人编辑任何其他文档,您会有什么感受?我会很沮丧。

模态应用程序对话框是一回事。 PopUpManager允许你创建这些。我会考虑模型应用程序窗口是一个糟糕的UI决定。

+0

我仍然不确定模式弹出是一个好主意。您是否研究过将Paypal Checkout与Flex集成的方法? (http://stackoverflow.com/questions/3655317/navigatetourl-set-modal-property/3655496#3655496)。 – JeffryHouser 2010-09-07 13:03:18

+0

好吧,考虑到这一点,我将编辑我的上述答案。 – reidLinden 2010-09-08 12:36:47

+0

@ user374436为什么不呢?除了通过HTML访问信用卡已经引入的Flash Player介绍什么安全问题?确保您的SWF通过SSL与后端进行通信,但除此之外,我不认为Flash播放器会引入其他漏洞。你知道不同吗? – JeffryHouser 2010-09-08 15:46:30