Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

284
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!