Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

289
Vistas
¿Se borra setInterval en el cambio de escena Phaser 3?

¿Se borran todos los setIntervals en el cambio de escena en Phaser 3? Por ejemplo, si tengo este código:

 class ExampleScene extends Phaser.Scene { constructor () { super(); } preload () { } create () { setInterval(() => console.log(true), 1000); } update () { } }

y cambio de escena, ¿seguirá registrando true a la consola? ¿Existe alguna alternativa en Phaser que no requiera que elimine todos los intervalos manualmente?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La respuesta corta es, no . Dado que setInterval es una función de javascript.
Para detalles sobre la función: aquí en la documentación en mdn

Lo que puede hacer es "guardar" las llamadas/id de setInvertal en una lista y borrarlas en un evento de scene específico como, apagar , pausar , destruir ... Cuando se activa ese evento, puede detener todos los intervalos guardados, más o menos ( detalles de posibles eventos de escena ).
Esto también se considera una buena práctica , ya que siempre debe limpiar los recursos al salir de una escena de Phaser.

Ejemplo (aquí con el evento de apagado) :

 ... // setup list for the intervals, that should be cleared later constructor () { super(); this.intervals = []; } create () { ... // example of adding an interval, so that I can be cleanup later this.intervals.push(setInterval(() => console.log(true), 1000)); ... // example listening to the shutdown Event this.events.on('shutdown', this.stopAllIntervals, this); } ... // example "cleanup"-function, that is execute on the 'shutdown' Event stopAllIntervals(){ for(let interval of this.intervals){ clearInterval(interval); } } ...

Y ahora solo tiene que llamar a stopAllIntervals en la función de evento deseada, cuando quiera detenerlos a todos.

De la documentación oficial, en el evento de apagado: ... Debe liberar cualquier recurso que pueda estar en uso por su Escena en este controlador de eventos, en el entendimiento de que la Escena puede, en cualquier momento, volver a activarse. Una escena de apagado no se 'destruye', simplemente no está activa en ese momento. Usa el evento DESTRUIR para borrar completamente los recursos. ...

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda