mirror of
https://github.com/photonstorm/phaser
synced 2024-11-15 17:28:18 +00:00
1781 lines
53 KiB
HTML
1781 lines
53 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Phaser Source: src/core/StateManager.js</title>
|
|
|
|
<!--[if lt IE 9]>
|
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
|
|
<link type="text/css" rel="stylesheet" href="styles/default.css">
|
|
|
|
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
|
|
|
|
|
|
<link type="text/css" rel="stylesheet" href="styles/site.cerulean.css">
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="container-fluid">
|
|
<div class="navbar navbar-fixed-top navbar-inverse">
|
|
<div style="position: absolute; width: 143px; height: 31px; right: 10px; top: 10px; z-index: 1050"><a href="http://phaser.io"><img src="img/phaser.png" border="0" /></a></div>
|
|
<div class="navbar-inner">
|
|
<a class="brand" href="index.html">Phaser API</a>
|
|
<ul class="nav">
|
|
|
|
|
|
<li class="dropdown">
|
|
<a href="namespaces.list.html" class="dropdown-toggle" data-toggle="dropdown">Namespaces<b
|
|
class="caret"></b></a>
|
|
|
|
<ul class="dropdown-menu ">
|
|
|
|
<li class="class-depth-0">
|
|
<a href="Phaser.html">Phaser</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="PIXI.html">PIXI</a>
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b
|
|
class="caret"></b></a>
|
|
|
|
<ul class="dropdown-menu ">
|
|
|
|
<li class="class-depth-0">
|
|
<a href="Matrix.html">Matrix</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Animation.html">Animation</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.AnimationManager.html">AnimationManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.AnimationParser.html">AnimationParser</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.ArrayList.html">ArrayList</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.ArraySet.html">ArraySet</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.ArrayUtils.html">ArrayUtils</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.AudioSprite.html">AudioSprite</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.BitmapData.html">BitmapData</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.BitmapText.html">BitmapText</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Button.html">Button</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Cache.html">Cache</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Camera.html">Camera</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Canvas.html">Canvas</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Circle.html">Circle</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Color.html">Color</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Angle.html">Angle</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Animation.html">Animation</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.AutoCull.html">AutoCull</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Bounds.html">Bounds</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.BringToTop.html">BringToTop</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Core.html">Core</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Crop.html">Crop</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Delta.html">Delta</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Destroy.html">Destroy</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.FixedToCamera.html">FixedToCamera</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Health.html">Health</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.InCamera.html">InCamera</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.InputEnabled.html">InputEnabled</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.InWorld.html">InWorld</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.LifeSpan.html">LifeSpan</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.LoadTexture.html">LoadTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Overlap.html">Overlap</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.PhysicsBody.html">PhysicsBody</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Reset.html">Reset</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.ScaleMinMax.html">ScaleMinMax</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Component.Smoothed.html">Smoothed</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Device.html">Device</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.DOM.html">DOM</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Easing.html">Easing</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Back.html">Back</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Bounce.html">Bounce</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Circular.html">Circular</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Cubic.html">Cubic</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Elastic.html">Elastic</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Exponential.html">Exponential</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Linear.html">Linear</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Quadratic.html">Quadratic</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Quartic.html">Quartic</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Quintic.html">Quintic</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Easing.Sinusoidal.html">Sinusoidal</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Ellipse.html">Ellipse</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Events.html">Events</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Filter.html">Filter</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.FlexGrid.html">FlexGrid</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.FlexLayer.html">FlexLayer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Frame.html">Frame</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.FrameData.html">FrameData</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Game.html">Game</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.GameObjectCreator.html">GameObjectCreator</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.GameObjectFactory.html">GameObjectFactory</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Gamepad.html">Gamepad</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.GamepadButton.html">GamepadButton</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Graphics.html">Graphics</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Group.html">Group</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Image.html">Image</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Input.html">Input</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.InputHandler.html">InputHandler</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Key.html">Key</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Keyboard.html">Keyboard</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Line.html">Line</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.LinkedList.html">LinkedList</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Loader.html">Loader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.LoaderParser.html">LoaderParser</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Math.html">Math</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Mouse.html">Mouse</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.MSPointer.html">MSPointer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Net.html">Net</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Particle.html">Particle</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Particles.html">Particles</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Particles.Arcade.html">Arcade</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Particles.Arcade.Emitter.html">Emitter</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Physics.html">Physics</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Physics.Arcade.html">Arcade</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Arcade.Body.html">Body</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Arcade.html#TilemapCollision">TilemapCollision</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Physics.Ninja.html">Ninja</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Ninja.AABB.html">AABB</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Ninja.Body.html">Body</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Ninja.Circle.html">Circle</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.Ninja.Tile.html">Tile</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Physics.P2.html">P2</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.Body.html">Body</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.BodyDebug.html">BodyDebug</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.CollisionGroup.html">CollisionGroup</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.ContactMaterial.html">ContactMaterial</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.DistanceConstraint.html">DistanceConstraint</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.FixtureList.html">FixtureList</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.GearConstraint.html">GearConstraint</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.InversePointProxy.html">InversePointProxy</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.LockConstraint.html">LockConstraint</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.Material.html">Material</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.PointProxy.html">PointProxy</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.PrismaticConstraint.html">PrismaticConstraint</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.RevoluteConstraint.html">RevoluteConstraint</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.RotationalSpring.html">RotationalSpring</a>
|
|
</li>
|
|
|
|
<li class="class-depth-3">
|
|
<a href="Phaser.Physics.P2.Spring.html">Spring</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Plugin.html">Plugin</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.PluginManager.html">PluginManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Point.html">Point</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Pointer.html">Pointer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Polygon.html">Polygon</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.QuadTree.html">QuadTree</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.RandomDataGenerator.html">RandomDataGenerator</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Rectangle.html">Rectangle</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.RenderTexture.html">RenderTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.RequestAnimationFrame.html">RequestAnimationFrame</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.RetroFont.html">RetroFont</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Rope.html">Rope</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.ScaleManager.html">ScaleManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Signal.html">Signal</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.SignalBinding.html">SignalBinding</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.SinglePad.html">SinglePad</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Sound.html">Sound</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.SoundManager.html">SoundManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Sprite.html">Sprite</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.SpriteBatch.html">SpriteBatch</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Stage.html">Stage</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.State.html">State</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.StateManager.html">StateManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Text.html">Text</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Tile.html">Tile</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Tilemap.html">Tilemap</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TilemapLayer.html">TilemapLayer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TilemapParser.html">TilemapParser</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Tileset.html">Tileset</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TileSprite.html">TileSprite</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Time.html">Time</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Timer.html">Timer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TimerEvent.html">TimerEvent</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Touch.html">Touch</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Tween.html">Tween</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TweenData.html">TweenData</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.TweenManager.html">TweenManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.Utils.html">Utils</a>
|
|
</li>
|
|
|
|
<li class="class-depth-2">
|
|
<a href="Phaser.Utils.Debug.html">Debug</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="Phaser.World.html">World</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.AbstractFilter.html">AbstractFilter</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.BaseTexture.html">BaseTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.BitmapText.html">BitmapText</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.CanvasBuffer.html">CanvasBuffer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.CanvasGraphics.html">CanvasGraphics</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.CanvasMaskManager.html">CanvasMaskManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.CanvasRenderer.html">CanvasRenderer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.CanvasTinter.html">CanvasTinter</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.ComplexPrimitiveShader.html">ComplexPrimitiveShader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.DisplayObject.html">DisplayObject</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.DisplayObjectContainer.html">DisplayObjectContainer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Event.html">Event</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.EventTarget.html">EventTarget</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.FilterTexture.html">FilterTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Graphics.html">Graphics</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.GraphicsData.html">GraphicsData</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.PIXI.html">PIXI</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.PixiFastShader.html">PixiFastShader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.PixiShader.html">PixiShader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.PolyK.html">PolyK</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.PrimitiveShader.html">PrimitiveShader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.RenderTexture.html">RenderTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Rope.html">Rope</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Sprite.html">Sprite</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.SpriteBatch.html">SpriteBatch</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Stage.html">Stage</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Strip.html">Strip</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.StripShader.html">StripShader</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Text.html">Text</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.Texture.html">Texture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.TilingSprite.html">TilingSprite</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.VideoTexture.html">VideoTexture</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.WebGLBlendModeManager.html">WebGLBlendModeManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.WebGLFastSpriteBatch.html">WebGLFastSpriteBatch</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.WebGLFilterManager.html">WebGLFilterManager</a>
|
|
</li>
|
|
|
|
<li class="class-depth-1">
|
|
<a href="PIXI.WebGLRenderer.html">WebGLRenderer</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="RoundedRectangle.html">RoundedRectangle</a>
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b
|
|
class="caret"></b></a>
|
|
|
|
<ul class="dropdown-menu ">
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#append">append</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#apply">apply</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#applyInverse">applyInverse</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#blendModes">blendModes</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#clone">clone</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#contains">contains</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#fromArray">fromArray</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#identity">identity</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#rotate">rotate</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#scale">scale</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#scaleModes">scaleModes</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#sort">sort</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#toArray">toArray</a>
|
|
</li>
|
|
|
|
<li class="class-depth-0">
|
|
<a href="global.html#translate">translate</a>
|
|
</li>
|
|
|
|
|
|
</ul>
|
|
</li>
|
|
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Core<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="Phaser.Game.html">Game</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Group.html">Group</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.World.html">World</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Loader.html">Loader</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Time.html">Time</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Camera.html">Camera</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.StateManager.html">State Manager</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.TweenManager.html">Tween Manager</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.SoundManager.html">Sound Manager</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Input.html">Input Manager</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.ScaleManager.html">Scale Manager</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Game Objects<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="Phaser.GameObjectFactory.html">Factory (game.add)</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.GameObjectCreator.html">Creator (game.make)</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Sprite.html">Sprite</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Image.html">Image</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Sound.html">Sound</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Particles.Arcade.Emitter.html">Particle Emitter</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Particle.html">Particle</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Text.html">Text</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Tween.html">Tween</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.BitmapText.html">BitmapText</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Tilemap.html">Tilemap</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.BitmapData.html">BitmapData</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.RetroFont.html">RetroFont</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Button.html">Button</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Animation.html">Animation</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Graphics.html">Graphics</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.RenderTexture.html">RenderTexture</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.TileSprite.html">TileSprite</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Geometry<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="Phaser.Circle.html">Circle</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Rectangle.html">Rectangle</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Point.html">Point</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Line.html">Line</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Ellipse.html">Ellipse</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Polygon.html">Polygon</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Physics<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="Phaser.Physics.Arcade.html">Arcade Physics</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.Arcade.Body.html">Body</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Physics.P2.html">P2 Physics</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.P2.Body.html">Body</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.P2.Spring.html">Spring</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.P2.CollisionGroup.html">CollisionGroup</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.P2.ContactMaterial.html">ContactMaterial</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Physics.Ninja.html">Ninja Physics</a></li>
|
|
<li class="class-depth-2"><a href="Phaser.Physics.Body.html">Body</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Input<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="Phaser.InputHandler.html">Input Handler</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Pointer.html">Pointer</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Mouse.html">Mouse</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Keyboard.html">Keyboard</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Key.html">Key</a></li>
|
|
<li class="class-depth-1"><a href="Phaser.Gamepad.html">Gamepad</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community<b class="caret"></b></a>
|
|
<ul class="dropdown-menu ">
|
|
<li class="class-depth-1"><a href="https://leanpub.com/u/photonstorm">Phaser Books</a></li>
|
|
<li class="class-depth-1"><a href="https://github.com/photonstorm/phaser">Phaser Github</a></li>
|
|
<li class="class-depth-1"><a href="http://examples.phaser.io">Phaser Examples</a></li>
|
|
<li class="class-depth-1"><a href="https://github.com/photonstorm/phaser-plugins">Phaser Plugins</a></li>
|
|
<li class="class-depth-1"><a href="http://www.html5gamedevs.com/forum/14-phaser/">Forum</a></li>
|
|
<li class="class-depth-1"><a href="http://stackoverflow.com/questions/tagged/phaser-framework">Stack Overflow</a></li>
|
|
<li class="class-depth-1"><a href="http://phaser.io/coding-tips.php">Weekly Coding Tips</a></li>
|
|
<li class="class-depth-1"><a href="https://confirmsubscription.com/h/r/369DE48E3E86AF1E">Newsletter</a></li>
|
|
<li class="class-depth-1"><a href="https://twitter.com/photonstorm">Twitter</a></li>
|
|
<li class="class-depth-1"><a href="http://www.html5gamedevs.com/topic/4470-official-phaserio-irc-channel-phaserio-on-freenode/">IRC</a></li>
|
|
<li class="class-depth-1"><a href="https://www.gittip.com/photonstorm/">Donate to the project</a></li>
|
|
<li class="class-depth-1"><a href="https://www.codeandweb.com/texturepacker/phaser">Texture Packer</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row-fluid">
|
|
|
|
|
|
<div class="span12">
|
|
|
|
<div id="main">
|
|
|
|
|
|
|
|
<h1 class="page-title">Source: src/core/StateManager.js</h1>
|
|
|
|
<section>
|
|
<article>
|
|
<pre class="sunlight-highlight-javascript linenums">/* jshint newcap: false */
|
|
|
|
/**
|
|
* @author Richard Davey <rich@photonstorm.com>
|
|
* @copyright 2015 Photon Storm Ltd.
|
|
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
|
|
*/
|
|
|
|
/**
|
|
* The State Manager is responsible for loading, setting up and switching game states.
|
|
*
|
|
* @class Phaser.StateManager
|
|
* @constructor
|
|
* @param {Phaser.Game} game - A reference to the currently running game.
|
|
* @param {Phaser.State|Object} [pendingState=null] - A State object to seed the manager with.
|
|
*/
|
|
Phaser.StateManager = function (game, pendingState) {
|
|
|
|
/**
|
|
* @property {Phaser.Game} game - A reference to the currently running game.
|
|
*/
|
|
this.game = game;
|
|
|
|
/**
|
|
* @property {object} states - The object containing Phaser.States.
|
|
*/
|
|
this.states = {};
|
|
|
|
/**
|
|
* @property {Phaser.State} _pendingState - The state to be switched to in the next frame.
|
|
* @private
|
|
*/
|
|
this._pendingState = null;
|
|
|
|
if (typeof pendingState !== 'undefined' && pendingState !== null)
|
|
{
|
|
this._pendingState = pendingState;
|
|
}
|
|
|
|
/**
|
|
* @property {boolean} _clearWorld - Clear the world when we switch state?
|
|
* @private
|
|
*/
|
|
this._clearWorld = false;
|
|
|
|
/**
|
|
* @property {boolean} _clearCache - Clear the cache when we switch state?
|
|
* @private
|
|
*/
|
|
this._clearCache = false;
|
|
|
|
/**
|
|
* @property {boolean} _created - Flag that sets if the State has been created or not.
|
|
* @private
|
|
*/
|
|
this._created = false;
|
|
|
|
/**
|
|
* @property {any[]} _args - Temporary container when you pass vars from one State to another.
|
|
* @private
|
|
*/
|
|
this._args = [];
|
|
|
|
/**
|
|
* @property {string} current - The current active State object.
|
|
* @default
|
|
*/
|
|
this.current = '';
|
|
|
|
/**
|
|
* @property {function} onInitCallback - This is called when the state is set as the active state.
|
|
* @default
|
|
*/
|
|
this.onInitCallback = null;
|
|
|
|
/**
|
|
* @property {function} onPreloadCallback - This is called when the state starts to load assets.
|
|
* @default
|
|
*/
|
|
this.onPreloadCallback = null;
|
|
|
|
/**
|
|
* @property {function} onCreateCallback - This is called when the state preload has finished and creation begins.
|
|
* @default
|
|
*/
|
|
this.onCreateCallback = null;
|
|
|
|
/**
|
|
* @property {function} onUpdateCallback - This is called when the state is updated, every game loop. It doesn't happen during preload (@see onLoadUpdateCallback).
|
|
* @default
|
|
*/
|
|
this.onUpdateCallback = null;
|
|
|
|
/**
|
|
* @property {function} onRenderCallback - This is called post-render. It doesn't happen during preload (see onLoadRenderCallback).
|
|
* @default
|
|
*/
|
|
this.onRenderCallback = null;
|
|
|
|
/**
|
|
* @property {function} onResizeCallback - This is called if ScaleManager.scalemode is RESIZE and a resize event occurs. It's passed the new width and height.
|
|
* @default
|
|
*/
|
|
this.onResizeCallback = null;
|
|
|
|
/**
|
|
* @property {function} onPreRenderCallback - This is called before the state is rendered and before the stage is cleared but after all game objects have had their final properties adjusted.
|
|
* @default
|
|
*/
|
|
this.onPreRenderCallback = null;
|
|
|
|
/**
|
|
* @property {function} onLoadUpdateCallback - This is called when the State is updated during the preload phase.
|
|
* @default
|
|
*/
|
|
this.onLoadUpdateCallback = null;
|
|
|
|
/**
|
|
* @property {function} onLoadRenderCallback - This is called when the State is rendered during the preload phase.
|
|
* @default
|
|
*/
|
|
this.onLoadRenderCallback = null;
|
|
|
|
/**
|
|
* @property {function} onPausedCallback - This is called when the game is paused.
|
|
* @default
|
|
*/
|
|
this.onPausedCallback = null;
|
|
|
|
/**
|
|
* @property {function} onResumedCallback - This is called when the game is resumed from a paused state.
|
|
* @default
|
|
*/
|
|
this.onResumedCallback = null;
|
|
|
|
/**
|
|
* @property {function} onPauseUpdateCallback - This is called every frame while the game is paused.
|
|
* @default
|
|
*/
|
|
this.onPauseUpdateCallback = null;
|
|
|
|
/**
|
|
* @property {function} onShutDownCallback - This is called when the state is shut down (i.e. swapped to another state).
|
|
* @default
|
|
*/
|
|
this.onShutDownCallback = null;
|
|
|
|
};
|
|
|
|
Phaser.StateManager.prototype = {
|
|
|
|
/**
|
|
* The Boot handler is called by Phaser.Game when it first starts up.
|
|
* @method Phaser.StateManager#boot
|
|
* @private
|
|
*/
|
|
boot: function () {
|
|
|
|
this.game.onPause.add(this.pause, this);
|
|
this.game.onResume.add(this.resume, this);
|
|
|
|
if (this._pendingState !== null && typeof this._pendingState !== 'string')
|
|
{
|
|
this.add('default', this._pendingState, true);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Adds a new State into the StateManager. You must give each State a unique key by which you'll identify it.
|
|
* The State can be either a Phaser.State object (or an object that extends it), a plain JavaScript object or a function.
|
|
* If a function is given a new state object will be created by calling it.
|
|
*
|
|
* @method Phaser.StateManager#add
|
|
* @param {string} key - A unique key you use to reference this state, i.e. "MainMenu", "Level1".
|
|
* @param {Phaser.State|object|function} state - The state you want to switch to.
|
|
* @param {boolean} [autoStart=false] - If true the State will be started immediately after adding it.
|
|
*/
|
|
add: function (key, state, autoStart) {
|
|
|
|
if (typeof autoStart === "undefined") { autoStart = false; }
|
|
|
|
var newState;
|
|
|
|
if (state instanceof Phaser.State)
|
|
{
|
|
newState = state;
|
|
}
|
|
else if (typeof state === 'object')
|
|
{
|
|
newState = state;
|
|
newState.game = this.game;
|
|
}
|
|
else if (typeof state === 'function')
|
|
{
|
|
newState = new state(this.game);
|
|
}
|
|
|
|
this.states[key] = newState;
|
|
|
|
if (autoStart)
|
|
{
|
|
if (this.game.isBooted)
|
|
{
|
|
this.start(key);
|
|
}
|
|
else
|
|
{
|
|
this._pendingState = key;
|
|
}
|
|
}
|
|
|
|
return newState;
|
|
|
|
},
|
|
|
|
/**
|
|
* Delete the given state.
|
|
* @method Phaser.StateManager#remove
|
|
* @param {string} key - A unique key you use to reference this state, i.e. "MainMenu", "Level1".
|
|
*/
|
|
remove: function (key) {
|
|
|
|
if (this.current === key)
|
|
{
|
|
this.callbackContext = null;
|
|
|
|
this.onInitCallback = null;
|
|
this.onShutDownCallback = null;
|
|
|
|
this.onPreloadCallback = null;
|
|
this.onLoadRenderCallback = null;
|
|
this.onLoadUpdateCallback = null;
|
|
this.onCreateCallback = null;
|
|
this.onUpdateCallback = null;
|
|
this.onPreRenderCallback = null;
|
|
this.onRenderCallback = null;
|
|
this.onResizeCallback = null;
|
|
this.onPausedCallback = null;
|
|
this.onResumedCallback = null;
|
|
this.onPauseUpdateCallback = null;
|
|
}
|
|
|
|
delete this.states[key];
|
|
|
|
},
|
|
|
|
/**
|
|
* Start the given State. If a State is already running then State.shutDown will be called (if it exists) before switching to the new State.
|
|
*
|
|
* @method Phaser.StateManager#start
|
|
* @param {string} key - The key of the state you want to start.
|
|
* @param {boolean} [clearWorld=true] - Clear everything in the world? This clears the World display list fully (but not the Stage, so if you've added your own objects to the Stage they will need managing directly)
|
|
* @param {boolean} [clearCache=false] - Clear the Game.Cache? This purges out all loaded assets. The default is false and you must have clearWorld=true if you want to clearCache as well.
|
|
* @param {...*} parameter - Additional parameters that will be passed to the State.init function (if it has one).
|
|
*/
|
|
start: function (key, clearWorld, clearCache) {
|
|
|
|
if (typeof clearWorld === "undefined") { clearWorld = true; }
|
|
if (typeof clearCache === "undefined") { clearCache = false; }
|
|
|
|
if (this.checkState(key))
|
|
{
|
|
// Place the state in the queue. It will be started the next time the game loop begins.
|
|
this._pendingState = key;
|
|
this._clearWorld = clearWorld;
|
|
this._clearCache = clearCache;
|
|
|
|
if (arguments.length > 3)
|
|
{
|
|
this._args = Array.prototype.splice.call(arguments, 3);
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Restarts the current State. State.shutDown will be called (if it exists) before the State is restarted.
|
|
*
|
|
* @method Phaser.StateManager#restart
|
|
* @param {boolean} [clearWorld=true] - Clear everything in the world? This clears the World display list fully (but not the Stage, so if you've added your own objects to the Stage they will need managing directly)
|
|
* @param {boolean} [clearCache=false] - Clear the Game.Cache? This purges out all loaded assets. The default is false and you must have clearWorld=true if you want to clearCache as well.
|
|
* @param {...*} parameter - Additional parameters that will be passed to the State.init function if it has one.
|
|
*/
|
|
restart: function (clearWorld, clearCache) {
|
|
|
|
if (typeof clearWorld === "undefined") { clearWorld = true; }
|
|
if (typeof clearCache === "undefined") { clearCache = false; }
|
|
|
|
// Place the state in the queue. It will be started the next time the game loop starts.
|
|
this._pendingState = this.current;
|
|
this._clearWorld = clearWorld;
|
|
this._clearCache = clearCache;
|
|
|
|
if (arguments.length > 2)
|
|
{
|
|
this._args = Array.prototype.splice.call(arguments, 2);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Used by onInit and onShutdown when those functions don't exist on the state
|
|
* @method Phaser.StateManager#dummy
|
|
* @private
|
|
*/
|
|
dummy: function () {
|
|
},
|
|
|
|
/**
|
|
* preUpdate is called right at the start of the game loop. It is responsible for changing to a new state that was requested previously.
|
|
*
|
|
* @method Phaser.StateManager#preUpdate
|
|
*/
|
|
preUpdate: function () {
|
|
|
|
if (this._pendingState && this.game.isBooted)
|
|
{
|
|
// Already got a state running?
|
|
this.clearCurrentState();
|
|
|
|
this.setCurrentState(this._pendingState);
|
|
|
|
if (this.current !== this._pendingState)
|
|
{
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
this._pendingState = null;
|
|
}
|
|
|
|
// If StateManager.start has been called from the init of a State that ALSO has a preload, then
|
|
// onPreloadCallback will be set, but must be ignored
|
|
if (this.onPreloadCallback)
|
|
{
|
|
this.game.load.reset(true);
|
|
this.onPreloadCallback.call(this.callbackContext, this.game);
|
|
|
|
// Is the loader empty?
|
|
if (this.game.load.totalQueuedFiles() === 0 && this.game.load.totalQueuedPacks() === 0)
|
|
{
|
|
this.loadComplete();
|
|
}
|
|
else
|
|
{
|
|
// Start the loader going as we have something in the queue
|
|
this.game.load.start();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// No init? Then there was nothing to load either
|
|
this.loadComplete();
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* This method clears the current State, calling its shutdown callback. The process also removes any active tweens,
|
|
* resets the camera, resets input, clears physics, removes timers and if set clears the world and cache too.
|
|
*
|
|
* @method Phaser.StateManager#clearCurrentState
|
|
*/
|
|
clearCurrentState: function () {
|
|
|
|
if (this.current)
|
|
{
|
|
if (this.onShutDownCallback)
|
|
{
|
|
this.onShutDownCallback.call(this.callbackContext, this.game);
|
|
}
|
|
|
|
this.game.tweens.removeAll();
|
|
|
|
this.game.camera.reset();
|
|
|
|
this.game.input.reset(true);
|
|
|
|
this.game.physics.clear();
|
|
|
|
this.game.time.removeAll();
|
|
|
|
this.game.scale.reset(this._clearWorld);
|
|
|
|
if (this.game.debug)
|
|
{
|
|
this.game.debug.reset();
|
|
}
|
|
|
|
if (this._clearWorld)
|
|
{
|
|
this.game.world.shutdown();
|
|
|
|
if (this._clearCache === true)
|
|
{
|
|
this.game.cache.destroy();
|
|
}
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Checks if a given phaser state is valid. A State is considered valid if it has at least one of the core functions: preload, create, update or render.
|
|
*
|
|
* @method Phaser.StateManager#checkState
|
|
* @param {string} key - The key of the state you want to check.
|
|
* @return {boolean} true if the State has the required functions, otherwise false.
|
|
*/
|
|
checkState: function (key) {
|
|
|
|
if (this.states[key])
|
|
{
|
|
var valid = false;
|
|
|
|
if (this.states[key]['preload'] || this.states[key]['create'] || this.states[key]['update'] || this.states[key]['render'])
|
|
{
|
|
valid = true;
|
|
}
|
|
|
|
if (valid === false)
|
|
{
|
|
console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render");
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
console.warn("Phaser.StateManager - No state found with the key: " + key);
|
|
return false;
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Links game properties to the State given by the key.
|
|
*
|
|
* @method Phaser.StateManager#link
|
|
* @param {string} key - State key.
|
|
* @protected
|
|
*/
|
|
link: function (key) {
|
|
|
|
this.states[key].game = this.game;
|
|
this.states[key].add = this.game.add;
|
|
this.states[key].make = this.game.make;
|
|
this.states[key].camera = this.game.camera;
|
|
this.states[key].cache = this.game.cache;
|
|
this.states[key].input = this.game.input;
|
|
this.states[key].load = this.game.load;
|
|
this.states[key].math = this.game.math;
|
|
this.states[key].sound = this.game.sound;
|
|
this.states[key].scale = this.game.scale;
|
|
this.states[key].state = this;
|
|
this.states[key].stage = this.game.stage;
|
|
this.states[key].time = this.game.time;
|
|
this.states[key].tweens = this.game.tweens;
|
|
this.states[key].world = this.game.world;
|
|
this.states[key].particles = this.game.particles;
|
|
this.states[key].rnd = this.game.rnd;
|
|
this.states[key].physics = this.game.physics;
|
|
this.states[key].key = key;
|
|
|
|
},
|
|
|
|
/**
|
|
* Nulls all State level Phaser properties, including a reference to Game.
|
|
*
|
|
* @method Phaser.StateManager#unlink
|
|
* @param {string} key - State key.
|
|
* @protected
|
|
*/
|
|
unlink: function (key) {
|
|
|
|
if (this.states[key])
|
|
{
|
|
this.states[key].game = null;
|
|
this.states[key].add = null;
|
|
this.states[key].make = null;
|
|
this.states[key].camera = null;
|
|
this.states[key].cache = null;
|
|
this.states[key].input = null;
|
|
this.states[key].load = null;
|
|
this.states[key].math = null;
|
|
this.states[key].sound = null;
|
|
this.states[key].scale = null;
|
|
this.states[key].state = null;
|
|
this.states[key].stage = null;
|
|
this.states[key].time = null;
|
|
this.states[key].tweens = null;
|
|
this.states[key].world = null;
|
|
this.states[key].particles = null;
|
|
this.states[key].rnd = null;
|
|
this.states[key].physics = null;
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Sets the current State. Should not be called directly (use StateManager.start)
|
|
*
|
|
* @method Phaser.StateManager#setCurrentState
|
|
* @param {string} key - State key.
|
|
* @private
|
|
*/
|
|
setCurrentState: function (key) {
|
|
|
|
this.callbackContext = this.states[key];
|
|
|
|
this.link(key);
|
|
|
|
// Used when the state is set as being the current active state
|
|
this.onInitCallback = this.states[key]['init'] || this.dummy;
|
|
|
|
this.onPreloadCallback = this.states[key]['preload'] || null;
|
|
this.onLoadRenderCallback = this.states[key]['loadRender'] || null;
|
|
this.onLoadUpdateCallback = this.states[key]['loadUpdate'] || null;
|
|
this.onCreateCallback = this.states[key]['create'] || null;
|
|
this.onUpdateCallback = this.states[key]['update'] || null;
|
|
this.onPreRenderCallback = this.states[key]['preRender'] || null;
|
|
this.onRenderCallback = this.states[key]['render'] || null;
|
|
this.onResizeCallback = this.states[key]['resize'] || null;
|
|
this.onPausedCallback = this.states[key]['paused'] || null;
|
|
this.onResumedCallback = this.states[key]['resumed'] || null;
|
|
this.onPauseUpdateCallback = this.states[key]['pauseUpdate'] || null;
|
|
|
|
// Used when the state is no longer the current active state
|
|
this.onShutDownCallback = this.states[key]['shutdown'] || this.dummy;
|
|
|
|
// Reset the physics system, but not on the first state start
|
|
if (this.current !== '')
|
|
{
|
|
this.game.physics.reset();
|
|
}
|
|
|
|
this.current = key;
|
|
this._created = false;
|
|
|
|
// At this point key and pendingState should equal each other
|
|
this.onInitCallback.apply(this.callbackContext, this._args);
|
|
|
|
// If they no longer do then the init callback hit StateManager.start
|
|
if (key === this._pendingState)
|
|
{
|
|
this._args = [];
|
|
}
|
|
|
|
this.game._kickstart = true;
|
|
|
|
},
|
|
|
|
/**
|
|
* Gets the current State.
|
|
*
|
|
* @method Phaser.StateManager#getCurrentState
|
|
* @return Phaser.State
|
|
* @public
|
|
*/
|
|
getCurrentState: function() {
|
|
return this.states[this.current];
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#loadComplete
|
|
* @protected
|
|
*/
|
|
loadComplete: function () {
|
|
|
|
if (this._created === false && this.onCreateCallback)
|
|
{
|
|
this._created = true;
|
|
this.onCreateCallback.call(this.callbackContext, this.game);
|
|
}
|
|
else
|
|
{
|
|
this._created = true;
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#pause
|
|
* @protected
|
|
*/
|
|
pause: function () {
|
|
|
|
if (this._created && this.onPausedCallback)
|
|
{
|
|
this.onPausedCallback.call(this.callbackContext, this.game);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#resume
|
|
* @protected
|
|
*/
|
|
resume: function () {
|
|
|
|
if (this._created && this.onResumedCallback)
|
|
{
|
|
this.onResumedCallback.call(this.callbackContext, this.game);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#update
|
|
* @protected
|
|
*/
|
|
update: function () {
|
|
|
|
if (this._created && this.onUpdateCallback)
|
|
{
|
|
this.onUpdateCallback.call(this.callbackContext, this.game);
|
|
}
|
|
else
|
|
{
|
|
if (this.onLoadUpdateCallback)
|
|
{
|
|
this.onLoadUpdateCallback.call(this.callbackContext, this.game);
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#pauseUpdate
|
|
* @protected
|
|
*/
|
|
pauseUpdate: function () {
|
|
|
|
if (this._created && this.onPauseUpdateCallback)
|
|
{
|
|
this.onPauseUpdateCallback.call(this.callbackContext, this.game);
|
|
}
|
|
else
|
|
{
|
|
if (this.onLoadUpdateCallback)
|
|
{
|
|
this.onLoadUpdateCallback.call(this.callbackContext, this.game);
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#preRender
|
|
* @protected
|
|
* @param {number} elapsedTime - The time elapsed since the last update.
|
|
*/
|
|
preRender: function (elapsedTime) {
|
|
|
|
if (this.onPreRenderCallback)
|
|
{
|
|
this.onPreRenderCallback.call(this.callbackContext, this.game, elapsedTime);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#resize
|
|
* @protected
|
|
*/
|
|
resize: function (width, height) {
|
|
|
|
if (this.onResizeCallback)
|
|
{
|
|
this.onResizeCallback.call(this.callbackContext, width, height);
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* @method Phaser.StateManager#render
|
|
* @protected
|
|
*/
|
|
render: function () {
|
|
|
|
if (this._created && this.onRenderCallback)
|
|
{
|
|
if (this.game.renderType === Phaser.CANVAS)
|
|
{
|
|
this.game.context.save();
|
|
this.game.context.setTransform(1, 0, 0, 1, 0, 0);
|
|
this.onRenderCallback.call(this.callbackContext, this.game);
|
|
this.game.context.restore();
|
|
}
|
|
else
|
|
{
|
|
this.onRenderCallback.call(this.callbackContext, this.game);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.onLoadRenderCallback)
|
|
{
|
|
this.onLoadRenderCallback.call(this.callbackContext, this.game);
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Removes all StateManager callback references to the State object, nulls the game reference and clears the States object.
|
|
* You don't recover from this without rebuilding the Phaser instance again.
|
|
* @method Phaser.StateManager#destroy
|
|
*/
|
|
destroy: function () {
|
|
|
|
this.clearCurrentState();
|
|
|
|
this.callbackContext = null;
|
|
|
|
this.onInitCallback = null;
|
|
this.onShutDownCallback = null;
|
|
|
|
this.onPreloadCallback = null;
|
|
this.onLoadRenderCallback = null;
|
|
this.onLoadUpdateCallback = null;
|
|
this.onCreateCallback = null;
|
|
this.onUpdateCallback = null;
|
|
this.onRenderCallback = null;
|
|
this.onPausedCallback = null;
|
|
this.onResumedCallback = null;
|
|
this.onPauseUpdateCallback = null;
|
|
|
|
this.game = null;
|
|
this.states = {};
|
|
this._pendingState = null;
|
|
this.current = '';
|
|
|
|
}
|
|
|
|
};
|
|
|
|
Phaser.StateManager.prototype.constructor = Phaser.StateManager;
|
|
</pre>
|
|
</article>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
<footer>
|
|
|
|
|
|
<span class="copyright">
|
|
Phaser Copyright © 2012-2015 Photon Storm Ltd.
|
|
</span>
|
|
<br />
|
|
|
|
<span class="jsdoc-message">
|
|
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha10</a>
|
|
on Thu Mar 26 2015 02:37:58 GMT+0000 (GMT Standard Time) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>.
|
|
</span>
|
|
</footer>
|
|
</div>
|
|
|
|
|
|
<br clear="both">
|
|
</div>
|
|
|
|
</div>
|
|
<script src="scripts/sunlight.js"></script>
|
|
<script src="scripts/sunlight.javascript.js"></script>
|
|
<script src="scripts/sunlight-plugin.doclinks.js"></script>
|
|
<script src="scripts/sunlight-plugin.linenumbers.js"></script>
|
|
<script src="scripts/sunlight-plugin.menu.js"></script>
|
|
<script src="scripts/jquery.min.js"></script>
|
|
<script src="scripts/jquery.scrollTo.js"></script>
|
|
<script src="scripts/jquery.localScroll.js"></script>
|
|
<script src="scripts/bootstrap-dropdown.js"></script>
|
|
<script src="scripts/toc.js"></script>
|
|
|
|
<script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script>
|
|
|
|
<script>
|
|
$( function () {
|
|
$( "#toc" ).toc( {
|
|
anchorName : function(i, heading, prefix) {
|
|
return $(heading).attr("id") || ( prefix + i );
|
|
},
|
|
selectors : "h1,h2,h3,h4",
|
|
showAndHide : false,
|
|
scrollTo : 60
|
|
} );
|
|
$( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" );
|
|
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
|
|
|
|
} );
|
|
</script>
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|