mirror of
https://github.com/photonstorm/phaser
synced 2025-02-16 14:08:28 +00:00
All functions now call 'queueOp'.
Removed sound unlocking on load complete.
This commit is contained in:
parent
53c491fb84
commit
378838a011
1 changed files with 101 additions and 122 deletions
|
@ -310,7 +310,7 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
entry = this._queue[i];
|
entry = this._queue[i];
|
||||||
|
|
||||||
this[entry.op](entry.keyA, entry.keyB);
|
this[entry.op](entry.keyA, entry.keyB, entry.data);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._queue.length = 0;
|
this._queue.length = 0;
|
||||||
|
@ -427,33 +427,31 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'remove', keyA: key, keyB: null });
|
return this.queueOp('remove', key);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var sceneToRemove = this.getScene(key);
|
||||||
|
|
||||||
|
if (!sceneToRemove || sceneToRemove.sys.isTransitioning())
|
||||||
{
|
{
|
||||||
var sceneToRemove = this.getScene(key);
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
if (!sceneToRemove || sceneToRemove.sys.isTransitioning())
|
var index = this.scenes.indexOf(sceneToRemove);
|
||||||
|
var sceneKey = sceneToRemove.sys.settings.key;
|
||||||
|
|
||||||
|
if (index > -1)
|
||||||
|
{
|
||||||
|
delete this.keys[sceneKey];
|
||||||
|
this.scenes.splice(index, 1);
|
||||||
|
|
||||||
|
if (this._start.indexOf(sceneKey) > -1)
|
||||||
{
|
{
|
||||||
return this;
|
index = this._start.indexOf(sceneKey);
|
||||||
|
this._start.splice(index, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
var index = this.scenes.indexOf(sceneToRemove);
|
sceneToRemove.sys.destroy();
|
||||||
var sceneKey = sceneToRemove.sys.settings.key;
|
|
||||||
|
|
||||||
if (index > -1)
|
|
||||||
{
|
|
||||||
delete this.keys[sceneKey];
|
|
||||||
this.scenes.splice(index, 1);
|
|
||||||
|
|
||||||
if (this._start.indexOf(sceneKey) > -1)
|
|
||||||
{
|
|
||||||
index = this._start.indexOf(sceneKey);
|
|
||||||
this._start.splice(index, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
sceneToRemove.sys.destroy();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -528,13 +526,6 @@ var SceneManager = new Class({
|
||||||
*/
|
*/
|
||||||
loadComplete: function (loader)
|
loadComplete: function (loader)
|
||||||
{
|
{
|
||||||
// TODO - Remove. This should *not* be handled here
|
|
||||||
// Try to unlock HTML5 sounds every time any loader completes
|
|
||||||
if (this.game.sound && this.game.sound.onBlurPausedSounds)
|
|
||||||
{
|
|
||||||
this.game.sound.unlock();
|
|
||||||
}
|
|
||||||
|
|
||||||
this.create(loader.scene);
|
this.create(loader.scene);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -679,7 +670,7 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.keys.hasOwnProperty(key))
|
if (this.keys.hasOwnProperty(key))
|
||||||
{
|
{
|
||||||
throw new Error('Cannot add a Scene with duplicate key: ' + key);
|
throw new Error('Cannot add Scene with duplicate key: ' + key);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.createSceneFromInstance(key, newScene);
|
return this.createSceneFromInstance(key, newScene);
|
||||||
|
@ -838,7 +829,7 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.keys.hasOwnProperty(key))
|
if (this.keys.hasOwnProperty(key))
|
||||||
{
|
{
|
||||||
throw new Error('Cannot add a Scene with duplicate key: ' + key);
|
throw new Error('Cannot add Scene with duplicate key: ' + key);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1214,7 +1205,7 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (!scene)
|
if (!scene)
|
||||||
{
|
{
|
||||||
console.warn('Scene not found for key: ' + key);
|
console.warn('Scene key not found: ' + key);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1337,7 +1328,7 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.isSleeping(to))
|
if (this.isSleeping(to))
|
||||||
{
|
{
|
||||||
this.wake(to);
|
this.wake(to, data);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1405,19 +1396,18 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'bringToTop', keyA: key, keyB: null });
|
return this.queueOp('bringToTop', key);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var index = this.getIndex(key);
|
||||||
|
var scenes = this.scenes;
|
||||||
|
|
||||||
|
if (index !== -1 && index < scenes.length)
|
||||||
{
|
{
|
||||||
var index = this.getIndex(key);
|
var scene = this.getScene(key);
|
||||||
|
|
||||||
if (index !== -1 && index < this.scenes.length)
|
scenes.splice(index, 1);
|
||||||
{
|
scenes.push(scene);
|
||||||
var scene = this.getScene(key);
|
|
||||||
|
|
||||||
this.scenes.splice(index, 1);
|
|
||||||
this.scenes.push(scene);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -1442,19 +1432,17 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'sendToBack', keyA: key, keyB: null });
|
return this.queueOp('sendToBack', key);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var index = this.getIndex(key);
|
||||||
|
|
||||||
|
if (index !== -1 && index > 0)
|
||||||
{
|
{
|
||||||
var index = this.getIndex(key);
|
var scene = this.getScene(key);
|
||||||
|
|
||||||
if (index !== -1 && index > 0)
|
this.scenes.splice(index, 1);
|
||||||
{
|
this.scenes.unshift(scene);
|
||||||
var scene = this.getScene(key);
|
|
||||||
|
|
||||||
this.scenes.splice(index, 1);
|
|
||||||
this.scenes.unshift(scene);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -1477,21 +1465,19 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'moveDown', keyA: key, keyB: null });
|
return this.queueOp('moveDown', key);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var indexA = this.getIndex(key);
|
||||||
|
|
||||||
|
if (indexA > 0)
|
||||||
{
|
{
|
||||||
var indexA = this.getIndex(key);
|
var indexB = indexA - 1;
|
||||||
|
var sceneA = this.getScene(key);
|
||||||
|
var sceneB = this.getAt(indexB);
|
||||||
|
|
||||||
if (indexA > 0)
|
this.scenes[indexA] = sceneB;
|
||||||
{
|
this.scenes[indexB] = sceneA;
|
||||||
var indexB = indexA - 1;
|
|
||||||
var sceneA = this.getScene(key);
|
|
||||||
var sceneB = this.getAt(indexB);
|
|
||||||
|
|
||||||
this.scenes[indexA] = sceneB;
|
|
||||||
this.scenes[indexB] = sceneA;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -1514,21 +1500,19 @@ var SceneManager = new Class({
|
||||||
{
|
{
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'moveUp', keyA: key, keyB: null });
|
return this.queueOp('moveUp', key);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var indexA = this.getIndex(key);
|
||||||
|
|
||||||
|
if (indexA < this.scenes.length - 1)
|
||||||
{
|
{
|
||||||
var indexA = this.getIndex(key);
|
var indexB = indexA + 1;
|
||||||
|
var sceneA = this.getScene(key);
|
||||||
|
var sceneB = this.getAt(indexB);
|
||||||
|
|
||||||
if (indexA < this.scenes.length - 1)
|
this.scenes[indexA] = sceneB;
|
||||||
{
|
this.scenes[indexB] = sceneA;
|
||||||
var indexB = indexA + 1;
|
|
||||||
var sceneA = this.getScene(key);
|
|
||||||
var sceneB = this.getAt(indexB);
|
|
||||||
|
|
||||||
this.scenes[indexA] = sceneB;
|
|
||||||
this.scenes[indexB] = sceneA;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -1560,23 +1544,21 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'moveAbove', keyA: keyA, keyB: keyB });
|
return this.queueOp('moveAbove', keyA, keyB);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var indexA = this.getIndex(keyA);
|
||||||
|
var indexB = this.getIndex(keyB);
|
||||||
|
|
||||||
|
if (indexA !== -1 && indexB !== -1 && indexB < indexA)
|
||||||
{
|
{
|
||||||
var indexA = this.getIndex(keyA);
|
var tempScene = this.getAt(indexB);
|
||||||
var indexB = this.getIndex(keyB);
|
|
||||||
|
|
||||||
if (indexA !== -1 && indexB !== -1 && indexB < indexA)
|
// Remove
|
||||||
{
|
this.scenes.splice(indexB, 1);
|
||||||
var tempScene = this.getAt(indexB);
|
|
||||||
|
|
||||||
// Remove
|
// Add in new location
|
||||||
this.scenes.splice(indexB, 1);
|
this.scenes.splice(indexA + (indexB > indexA), 0, tempScene);
|
||||||
|
|
||||||
// Add in new location
|
|
||||||
this.scenes.splice(indexA + (indexB > indexA), 0, tempScene);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
@ -1608,29 +1590,27 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'moveBelow', keyA: keyA, keyB: keyB });
|
return this.queueOp('moveBelow', keyA, keyB);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var indexA = this.getIndex(keyA);
|
||||||
|
var indexB = this.getIndex(keyB);
|
||||||
|
|
||||||
|
if (indexA !== -1 && indexB !== -1 && indexB > indexA)
|
||||||
{
|
{
|
||||||
var indexA = this.getIndex(keyA);
|
var tempScene = this.getAt(indexB);
|
||||||
var indexB = this.getIndex(keyB);
|
|
||||||
|
|
||||||
if (indexA !== -1 && indexB !== -1 && indexB > indexA)
|
// Remove
|
||||||
|
this.scenes.splice(indexB, 1);
|
||||||
|
|
||||||
|
if (indexA === 0)
|
||||||
{
|
{
|
||||||
var tempScene = this.getAt(indexB);
|
this.scenes.unshift(tempScene);
|
||||||
|
}
|
||||||
// Remove
|
else
|
||||||
this.scenes.splice(indexB, 1);
|
{
|
||||||
|
// Add in new location
|
||||||
if (indexA === 0)
|
this.scenes.splice(indexA - (indexB < indexA), 0, tempScene);
|
||||||
{
|
|
||||||
this.scenes.unshift(tempScene);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Add in new location
|
|
||||||
this.scenes.splice(indexA - (indexB < indexA), 0, tempScene);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1647,12 +1627,13 @@ var SceneManager = new Class({
|
||||||
* @param {string} op - The operation to perform.
|
* @param {string} op - The operation to perform.
|
||||||
* @param {(string|Phaser.Scene)} keyA - Scene A.
|
* @param {(string|Phaser.Scene)} keyA - Scene A.
|
||||||
* @param {(any|string|Phaser.Scene)} [keyB] - Scene B, or a data object.
|
* @param {(any|string|Phaser.Scene)} [keyB] - Scene B, or a data object.
|
||||||
|
* @param {any} [data] - Optional data object to pass.
|
||||||
*
|
*
|
||||||
* @return {this} This Scene Manager instance.
|
* @return {this} This Scene Manager instance.
|
||||||
*/
|
*/
|
||||||
queueOp: function (op, keyA, keyB)
|
queueOp: function (op, keyA, keyB, data)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: op, keyA: keyA, keyB: keyB });
|
this._queue.push({ op: op, keyA: keyA, keyB: keyB, data: data });
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
@ -1680,20 +1661,18 @@ var SceneManager = new Class({
|
||||||
|
|
||||||
if (this.isProcessing)
|
if (this.isProcessing)
|
||||||
{
|
{
|
||||||
this._queue.push({ op: 'swapPosition', keyA: keyA, keyB: keyB });
|
return this.queueOp('swapPosition', keyA, keyB);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
var indexA = this.getIndex(keyA);
|
||||||
|
var indexB = this.getIndex(keyB);
|
||||||
|
|
||||||
|
if (indexA !== indexB && indexA !== -1 && indexB !== -1)
|
||||||
{
|
{
|
||||||
var indexA = this.getIndex(keyA);
|
var tempScene = this.getAt(indexA);
|
||||||
var indexB = this.getIndex(keyB);
|
|
||||||
|
|
||||||
if (indexA !== indexB && indexA !== -1 && indexB !== -1)
|
this.scenes[indexA] = this.scenes[indexB];
|
||||||
{
|
this.scenes[indexB] = tempScene;
|
||||||
var tempScene = this.getAt(indexA);
|
|
||||||
|
|
||||||
this.scenes[indexA] = this.scenes[indexB];
|
|
||||||
this.scenes[indexB] = tempScene;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
|
|
Loading…
Add table
Reference in a new issue