若要允许窗口与桌面或其他窗口进行 Alpha 混合,请将该窗口的
transparent
属性设置为
true
。必须在创建窗口之前设置
transparent
属性,否则将无法更改该属性。
透明窗口没有默认背景。不包含应用程序所绘制对象的任何窗口区域都不可见。如果所显示对象的 Alpha 设置小于 1,则该对象下方的任何内容都会显示出来,包括同一窗口中的其他显示对象、其他窗口和桌面。
在希望创建具有不规则形状边框、“淡出”边框或显示为不可见的边框的应用程序时,透明窗口非常有用。然而,呈现经过 Alpha 混合的较大区域可能会很慢,因此应谨慎使用该效果。
重要说明:
在 Linux 中,不能穿过完全透明的像素传递鼠标事件。 应避免用完全透明的大型区域创建窗口,因为可能会在无法察觉的情况下阻止用户访问其他窗口或其桌面上的项目。 在 Mac OS X 和 Windows 中,可以穿过完全透明的像素传递鼠标事件。
不能对具有系统镶边的窗口使用透明度。此外,透明窗口中不能显示 HTML 中的 SWF 和 PDF 内容。有关详细信息,请参阅
在 HTML 页中加载 SWF 或 PDF 内容时的注意事项
。
静态
NativeWindow.supportsTransparency
属性可报告窗口透明度是否可用。在不支持透明度时,应用程序将与黑色背景合成。在这些情况下,应用程序的任何透明区域都显示为不透明的黑色。这种做法可以很好地应对万一此属性测试
失败
而需要回退的情况。例如,您可以向用户显示警告对话框,或显示矩形非透明用户界面。
请注意,Mac 和 Windows 操作系统始终支持透明度。支持 Linux 操作系统需要使用合成窗口管理器,但即使有合成窗口管理器处于活动状态,透明度也可能因用户显示选项或硬件配置而不可用。