电子中的黑色边框内容

时间:2019-08-12 09:58:06

标签: javascript node.js npm electron

我使用电子将使用Phaser 2制作的视频游戏转换为.exe。但是围绕我的内容,我有一些边界或空白。

我尝试使用全屏更改此设置,也尝试使用useContentSize,但问题仍未解决。

这是我的JS文件:

const { app, BrowserWindow } = require('electron')

let win;

function createWindow () {
  // Cree la fenetre du navigateur.
 win = new BrowserWindow({
    //width: 886,
    //height: 473,
    useContentSize : true,
    autoHideMenuBar : true,
    icon: "favicon.ico",
    //met la fenetre sans bordure 
    //frame : false,
    //fullscreen : true,
  })

  //load the index.html.
  win.loadFile('src/junkbuster.html');
  win.setMenuBarVisibility(false);
  win.setMenu(null);
  //win.setContentSize(1700,1200);
}

app.on('ready', function(){
  createWindow();

  console.log(win.getContentBounds());

  //800,600 => 786, 563
  console.log(win.getSize()+"=>"+win.getContentSize());

});

这是我的HTML文件

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <script src="./phaser.js"></script>
    <script src="./index.js"></script>
    <style type="text/css">
    body {
        background-color: black;
        width:100vw;
        height:100vh;
        margin:0px;
    }
    body * {
        margin-left: auto;
        margin-right: auto;
    }
    </style>
</head>
<body>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

根据Issue #9419,对我有用的解决方法是避免使用mainWindow.setResizable(false),而改用它:

mainWindow.on('will-resize', (e) => {
//prevent resizing even if resizable property is true.
    e.preventDefault();
});

答案 1 :(得分:0)

此问题来自Phaser 2的scaleMangaer。因此,要解决此问题,您需要转到Boot init文件并更改您的scaleMode。

转到https://phaser.io/docs/2.6.2/Phaser.ScaleManager.html了解更多信息