changelog/v3/3.7.1/CHANGELOG-v3.7.1.md
setMask, clearMask, createBitmapMask and createGeometryMask.TextureManager.createCanvas method as before, only this time you'll get a CanvasTexture back which has helper properties and methods. See the complete JSDocs for more details.shuffle which allows you to shuffle an array using the current RNG seed (thanks @wtravO)disableInteractive which will disable the Interactive Object bound to them. You can toggle it back again by calling setInteractive with no arguments.removeInteractive which will destroy the Interactive Object bound to them entirely. Use this if a Game Object no longer needs any input at all but you don't want to destroy the Game Object itself.The Loader has been given an overhaul to improve its performance and extensibility and gains the following new features:
atlasXML which will load a Shoebox / Starling / Flash CC format XML Texture Atlas.multiatlas file type has changed. You no longer have to specify the URLs of the images, instead it reads them from the JSON data and adds them into the loader automatically.files which was an array of files to load. It has been renamed to pack and it's an object that exactly matches the new Pack File format. Please see the loader example scene files payload.js for an example. In short, where you had: files: [] before, just change it to pack: { files: [] } and it'll work.multiatlas feature will now automatically load texture normal maps, if specified in the json.dataType argument and property which will cast the binary data to that format after load, before inserting it into the cache, i.e.: load.binary('mod', 'music.mod', Uint8Array)LoaderPlugin.tilemapWeltmeister has been renamed to the far more friendly LoaderPlugin.tilemapImpact. Everything else about it remains the same, but please update to use the new method name.loader property. It also has a new property cache which is a reference to the cache that the file type will be stored in.hasCacheConflict which checks if a key matching the one used by this file exists in the target Cache or not.addToCache which will add the file to its target cache and then emit a filecomplete event, passing its key and a reference to itself to the listener (thanks to @kalebwalton for a related PR)cacheManager which is a reference to the global game cache and is used by the File Types.textureManager which is a reference to the global Texture Manager and is used by the File Types.load.image({ key: 'shinyRobot', url: 'rob.png', normalMap: 'rob_n.png' }); - you can still use the previous array method too.loaderEnableParallel property has been removed.X-Requested-With header in the XHR requests by specifying it in your XHRSettings config, either in the game, scene or file configs.raw-loader and we've changed the syntax of the DefinePlugin calls:raw-loader to import our shader source. Instead it's compiled to plain JS files during our in-house workflow. This should allow you to bundle Phaser with packages other than Webpack more easily.addtexture event whenever you add a new texture to it, which includes when you load image files from the Loader (as it automatically populates the Texture Manager). Once you receive an addtexture event you know the image is loaded and the texture is safe to be applied to a Game Object.destroy methods which clear their references, freeing them for gc.selfParent which allows the canvas itself to be the parent key, used for later removal.setSize which allows you to set the frame x, y, width and height and have it update all of the internal properties automatically. This is now called directly in the constructor.TextureManager.exists method as before.removetexture event.renderer as it's used a lot internally and is useful if you extend the class.nativeTextures array when you call the deleteTexture method.exists that will return a boolean if an entry for the given key exists in the cache or not.ready event when it has fully finished starting up and all plugins are available. Re: #3636 (thanks @Yazir)addToScene. If you set this to true it will add the Game Object being created to the Scene automatically, while false will do the opposite, i.e.: this.make.image(config, false). You can still specify the add property in the Config object too, but if the argument is provided it will override the property.loop property, if set in the source JSON.getDataSourceImage which will return the raw image data of the data source.Game.scene.add and passed in a data object, the data would be ignored when starting the Scene.angle property and the Emitter Ops were being cast wrong (thanks @samme)getBounds on its children before doing so, as some do not have this method (such as Graphics objects) so they no longer cause the call to crash. Fix #3623 (thanks @poasher)setProgress method was setting the frame on the wrong object. Fix #3633 (thanks @benhhopkins)text argument in the constructor. Before they only worked via setText (thanks @Jelaw21)My thanks to the following for helping with the Phaser 3 Examples, Docs and TypeScript definitions, either by reporting errors, fixing them or helping author the docs:
@wtravO @Fabadiculous @zilbuz @samme @iamchristopher @erd0s @PaNaVTEC @ksmai @snowbillr