-
Notifications
You must be signed in to change notification settings - Fork 490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error thrown when destroying the game too early and using WebAudio #684
Comments
Thanks for this report. Did you use |
I'm not sure what to do about this one, since setting pendingDestroy would avoid the error. I guess a second check could be added. |
I'm using The game is located in a vueJS Component, when the VueJS component unloads, right before removing the canvas from the dom (VueJS's I was using Phaser-ce 2.16.0 before that, with no sound at all in the game. I just recently added the sound effects and updated to 2.16.2 at the same time. This is when all of these 5 errors occured. Before that, I had no issues when destroying the game. Even the 5th one reported here wasn't there before. (but oddly it does not seems to be related to WebAudio...). |
Could you try this build and see if it avoids the errors? |
@samme this build seems to solves the errors : 1, 2, 4 and 5 The number 3 (a warning) is not solved though, it still says To give you more informations, the exception is thrown from here: Then it's caught here: Then it's in the But this exception is all inside a FileComplete event inside a So I guess that inside the If I add the following
Right at the beginning of: The warning goes away Hope this helps 👍 |
I think |
@samme My bad, you're right ! I actually couldn't use directly your build and had to show the diff and impact it one by one, seems like I missed that one. I tested it once again, and it seems to be perfectly working, thank you ! |
This Issue is about
Hello there and thank you for maintaining this repo !
Several errors may occurs when destroying the game too early. These errors are all related to WebAudio.
Note that these errors occurred in a single page app where
window.PhaserGlobal = {};
has been set as suggested in the doc.1. Cannot set property 'onended' of null
Stacktrace:
Concerned line of code:
https://github.com/photonstorm/phaser-ce/blob/585160726bf3be112d7a37c8469171a3203e1ae5/src/sound/Sound.js#L1135-L1138
Comment:
I guess
this._sound
is null or undefined at this stage, when the whole game has been destroyed.2. Cannot read property 'noAudio' of null
Stacktrace:
Concerned line of code:
https://github.com/photonstorm/phaser-ce/blob/c7f5f4345530fea0ad5a2d578b1c7fc26513380a/src/loader/Loader.js#L1271-L1276
https://github.com/photonstorm/phaser-ce/blob/c7f5f4345530fea0ad5a2d578b1c7fc26513380a/src/loader/Loader.js#L2850-L2855
Comment:
We should check the existence of
this.game
andthis.game.sound
beforehand.3. Cannot read property 'usingWebAudio' of null
This one is a warning, not an error so it's less important but still.
Stacktrace:
Concerned line of code:
https://github.com/photonstorm/phaser-ce/blob/c7f5f4345530fea0ad5a2d578b1c7fc26513380a/src/loader/Loader.js#L2407-L2410
https://github.com/photonstorm/phaser-ce/blob/c7f5f4345530fea0ad5a2d578b1c7fc26513380a/src/loader/Loader.js#L3051-L3061
Being catch and log as a warning here:
https://github.com/photonstorm/phaser-ce/blob/c7f5f4345530fea0ad5a2d578b1c7fc26513380a/src/loader/Loader.js#L2240
4. Cannot read property 'decodedSound' of null
Stacktrace:
Concerned line of code:
https://github.com/photonstorm/phaser-ce/blob/ccbe5d7277194a4607492928ff26997ebc34c9ed/src/sound/SoundManager.js#L527-L534
5. Cannot read property 'update' of null
Stacktrace:
Concerned line of code:
https://github.com/photonstorm/phaser-ce/blob/585160726bf3be112d7a37c8469171a3203e1ae5/src/core/Game.js#L982-L991
Comment:
I guess that one is not related to the use of WebAudio
Most of this should be solved by adding some conditional check I suppose.
Once again, thank you for maintaining this repo, have a good day. 👍
The text was updated successfully, but these errors were encountered: