Phaser 指针事件在 WebView (Xamarin Forms) C# 中不起作用

问题描述

我使用移相器及其完美渲染调用所有指针事件(例如按钮btn上的指针悬停、指针输出、指针向上和指针向下)创建了一个简单的动画屏幕正如浏览器所预期的那样。但是,当我使用 WebView 的渲染屏幕渲染相同的游戏但它不调用任何指针事件。为了确认 JavaScript 正常工作,我通过在 eventlistner添加 window 进行了测试,并且它工作正常。

    var config = {
        type: Phaser.CANVAS,width: 650,height: 900,canvas: document.getElementById('myCustomCanvas'),scale: {
            mode: Phaser.Scale.FIT,width: 750,height: 1334,parent: 'game'
          },physics: {
            default: 'arcade',arcade: {
                gravity: { y: 0 }
            }
        },scene : {
        preload: function(){game.preload(this,'asset_url');},create: function(){game.create(this);},update: function(){game.update(this);},}
    };
    


function game(config) {

     this.start = function(config)
     {
       this.phaserGame = new Phaser.Game(config);
     };

    this.create = function()
    {
      var btn = this.scene.add.sprite(375,665,'btn');
      btn.setInteractive()
        .on('pointerover',() => {
            console.log('pointerover');
        })
        .on('pointerout',() => {
            console.log('pointerout');
        })
        .on('pointerdown',() => {
            console.log('pointerdown');
        })
        .on('pointerup',() => {
            console.log('pointerup');
        });
    };
}

我正在使用 Xamarin Forms WebView 在移动设备中呈现游戏。我对 WebView 的设置如下。

var webView = CreateNativeControl();
            webView.SetWebViewClient(new HTMLGameWebClient(this));
            webView.Settings.LightTouchEnabled = true;
            webView.Settings.JavaScriptEnabled = true;
            webView.Settings.DomStorageEnabled = true;
            webView.Settings.mediaplaybackRequiresUserGesture = false;

            SetNativeControl(webView);

我也有条件 CSS,仅当画布在移动设备中呈现时使用。

canvas {
    width: 100vw !important;
    height: unset;
}

预先感谢您的任何帮助或建议。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)