我可以在使用openfl制作的桌面应用程序中拥有透明背景

时间:2018-02-17 21:47:57

标签: windows macos haxe openfl

我想知道是否有办法将主应用程序窗口背景设置为透明,以便在使用openfl构建macOS和Windows时可以看到其后面的所有其他应用程序

我的项目文件如下所示。

<?xml version="1.0" encoding="utf-8"?>
<project>

    <meta title="DeskClock" package="com.sample.deskclock" version="1.0.0" company="Company Name" />
    <app main="Main" path="Export" file="DeskClock" />
    <window hardware="true" allow-shaders="true" require-shaders="true" depth-buffer="false" stencil-buffer="false" />

    <window 
    background="0x00000000" 
    fullscreen="false" 
    resizable="false" 
    borderless="true" 
    vsync="true"/>

    <window always-on-top="true" /> 

    <source path="Source" />

    <haxelib name="openfl" />

    <assets path="Assets" rename="assets" />

</project> 

我的主文件看起来像这样。

2 个答案:

答案 0 :(得分:0)

如果您的目标是Air Desktop,可能会出现性能损失,并且不确定您是否可以使用Stage GPU。 我不确定windows cpp的目标。

答案 1 :(得分:0)

你做得很好,最简单的透明度看起来像这样:

<window background="null" color-depth="32" />

默认情况下,OpenFL在OpenGL上使用16位颜色,没有alpha,因此color-depth对于允许透明背景非常重要。

这适用于HTML5,我在Linux上测试过,我不相信SDL创建的X11窗口是透明的,即使隐藏了边框也是如此。根据平台的不同,可能需要在创建本机窗口方面做更多工作。 macOS或Windows可能适用于上述内容。