Tengo un juego que se reproduce automáticamente en pantalla completa con
this.scale.startFullscreen();y quiero darle al usuario la opción de salir de la pantalla completa presionando 'x' en la esquina superior derecha. Así que escribí:
this.add.text(750, 20, 'X', { fontSize: '20px'}); this.exitFullScreen = this.add.rectangle(770, 30, 60, 60, 0xfff); this.exitFullScreen.setInteractive(); this.exitFullScreen.on('pointerup', this.scale.stopfullScreen); pero eso no funciona, también intenté poner this.scale.stopfullScreen dentro de una función de devolución de llamada y también agregué condicional if (isFullscreen()) , pero tampoco funcionó. ¿Hay alguna manera de que pueda darle al usuario la opción de salir de la pantalla completa, idealmente sin eliminar this.scale.startFullscreen(); al principio de create() ?
El problema es esta línea this.exitFullScreen.on('pointerup', this.scale.stopfullScreen); el eventlistener .on('pointerup', ...) llama a la función de devolución de llamada pasada con un contexto diferente.
Simplemente cambie el eventlistener a .on('pointerup', () => this.scale.stopFullscreen()); y debería funcionar.
O podría pasar el contexto correcto (para la función) como tercer parámetro al eventlistener, así: .on('pointerup', this.scale.stopFullscreen, this.scale);