【发布时间】:2011-09-29 13:09:18
【问题描述】:
我正在使用 IFrame 并动态添加它,它隐藏了一个新的 Alert.show 和一个以前制作的 TitleWindow。
我如何安排它返回或使警报或窗口最重要?
【问题讨论】:
-
你能解释一下你在做什么,并可能显示一些代码吗?
-
使用谷歌代码中的 flex-iframe 制作网络应用
标签: apache-flex user-interface
我正在使用 IFrame 并动态添加它,它隐藏了一个新的 Alert.show 和一个以前制作的 TitleWindow。
我如何安排它返回或使警报或窗口最重要?
【问题讨论】:
标签: apache-flex user-interface
不幸的是,你不能,因为他们是不同观点的父母。
Popup 由 SWF 管理,是应用程序显示列表的子项。 IFrame 由 HTML 管理,是 DOM 的子级。
即:
+ HTML Page
|
|
+---IFrame
|
+---SWF (Flex Application)
|
+--- System Manager
| |
| +---- Popup's // <---- Your Popup is here
+--- Application
不幸的是,我知道这里没有解决方案,您需要在 IFrame 中显示弹出窗口,或者删除 IFrame 以显示弹出窗口。
【讨论】:
我猜你正在使用 mx:HTML 组件来显示一些 HTML。我在我的项目中遇到了同样的问题,IFrame 对象总是显示在所有内容之上。
一个有效的解决方法是绘制隐藏 HTML 组件并显示它的位图快照。这样,警报或任何弹出窗口都会显示在它上面。
我是这样做的
private var _snapshotImage:Bitmap;
private function toggleSnapshotMode(htmlVisible:Boolean):void
{
if(!htmlVisible)
{
var bitmapData:BitmapData = new BitmapData(htmlLoader.width,htmlLoader.height,false);
bitmapData.draw(htmlLoader,null,null,null,null,true);
_snapshotImage = new Bitmap(bitmapData);
_snapshotImage.x = htmlLoader.x;
_snapshotImage.y = htmlLoader.y;
html.addChildAt(_snapshotImage,0);
}
else
{
html.removeChild(_snapshotImage);
}
html.htmlLoader.visible = htmlVisible;
}
【讨论】: