Added jsdocs

This commit is contained in:
Richard Davey 2018-05-05 11:56:09 +01:00
parent ad6c08a4d0
commit 42cc4acf00
2 changed files with 107 additions and 44 deletions

View file

@ -13,36 +13,6 @@ var GetFastValue = require('../utils/object/GetFastValue');
var PluginManager = require('../boot/PluginManager');
var XHRSettings = require('./XHRSettings');
/**
* @typedef {object} MultiFileObject
*
* @property {string} type - [description]
* @property {Phaser.Loader.File} fileA - [description]
* @property {Phaser.Loader.File} fileB - [description]
*/
/**
* @typedef {object} LoaderFileObject
*
* @property {string} key - [description]
* @property {string} type - [description]
* @property {string} [url] - [description]
* @property {string[]} [urls] - [description]
* @property {string} [textureURL] - [description]
* @property {string} [atlasURL] - [description]
* @property {string} [xmlURL] - [description]
* @property {string[]} [textureURLs] - [description]
* @property {string[]} [atlasURLs] - [description]
* @property {object} [config] - [description]
* @property {object} [json] - [description]
* @property {XHRSettingsObject} [xhrSettings] - [description]
* @property {XHRSettingsObject} [textureXhrSettings] - [description]
* @property {XHRSettingsObject} [atlasXhrSettings] - [description]
* @property {XHRSettingsObject} [xmlXhrSettings] - [description]
* @property {XHRSettingsObject} [audioXhrSettings] - [description]
* @property {XHRSettingsObject} [jsonXhrSettings] - [description]
*/
/**
* @classdesc
* The Loader handles loading all external content such as Images, Sounds, Texture Atlases and data files.
@ -483,6 +453,16 @@ var LoaderPlugin = new Class({
return this;
},
/**
* This event is fired when a Loader successfully begins to load its queue.
*
* @event Phaser.Loader.LoaderPlugin#addFileEvent
* @param {string} key - The key of the file that was added.
* @param {string} type - The type of the file that was added.
* @param {Phaser.Loader.LoaderPlugin} loader - The Loader that had the file added to it.
* @param {Phaser.Loader.File} loader - The File object that was added to the Loader.
*/
/**
* Adds a file, or array of files, into the load queue.
*
@ -495,6 +475,7 @@ var LoaderPlugin = new Class({
* however you can call this as long as the file given to it is well formed.
*
* @method Phaser.Loader.LoaderPlugin#addFile
* @fires Phaser.Loader.LoaderPlugin#addFileEvent
* @since 3.0.0
*
* @param {(Phaser.Loader.File|Phaser.Loader.File[])} file - The file, or array of files, to be added to the load queue.
@ -516,6 +497,8 @@ var LoaderPlugin = new Class({
{
this.list.set(item);
this.emit('addfile', item.key, item.type, this, item);
if (this.isLoading())
{
this.totalToLoad++;

View file

@ -11,9 +11,35 @@ var FileTypesManager = require('../FileTypesManager');
var GetFastValue = require('../../utils/object/GetFastValue');
var IsPlainObject = require('../../utils/object/IsPlainObject');
/**
* @typedef {object} Phaser.Loader.FileTypes.ImageFrameConfig
*
* @property {integer} frameWidth - The width of the frame in pixels.
* @property {integer} [frameHeight] - The height of the frame in pixels. Uses the `frameWidth` value if not provided.
* @property {integer} [startFrame=0] - The first frame to start parsing from.
* @property {integer} [endFrame] - The frame to stop parsing at. If not provided it will calculate the value based on the image and frame dimensions.
* @property {integer} [margin=0] - The margin in the image. This is the space around the edge of the frames.
* @property {integer} [spacing=0] - The spacing between each frame in the image.
*/
/**
* @typedef {object} Phaser.Loader.FileTypes.ImageFileConfig
*
* @property {string} key - The key of the file. Must be unique within both the Loader and the Texture Manager.
* @property {string} [url] - The absolute or relative URL to load the file from.
* @property {string} [extension='png'] - The default file extension to use if no url is provided.
* @property {string} [normalMap] - The filename of an associated normal map. It uses the same path and url to load as the image.
* @property {Phaser.Loader.FileTypes.ImageFrameConfig} [frameConfig] - The frame configuration object. Only provided for, and used by, Sprite Sheets.
* @property {XHRSettingsObject} [xhrSettings] - Extra XHR Settings specifically for this file.
*/
/**
* @classdesc
* [description]
* A single Image File suitable for loading by the Loader.
*
* These are created when you use the Phaser.Loader.LoaderPlugin#image method and are not typically created directly.
*
* For documentation about what all the arguments and configuration options mean please see Phaser.Loader.LoaderPlugin#image.
*
* @class ImageFile
* @extends Phaser.Loader.File
@ -21,11 +47,11 @@ var IsPlainObject = require('../../utils/object/IsPlainObject');
* @constructor
* @since 3.0.0
*
* @param {(string|object)} key - The name of the asset to load or an object representing the asset
* @param {string} [url] - The asset's filename
* @param {string} [path] - The path the asset can be found in
* @param {XHRSettingsObject} [xhrSettings] - Optional image specific XHR settings
* @param {object} [frameConfig] - config can include: frameWidth, frameHeight, startFrame, endFrame, margin, spacing
* @param {Phaser.Loader.LoaderPlugin} loader - A reference to the Loader that is responsible for this file.
* @param {(string|Phaser.Loader.FileTypes.ImageFileConfig)} key - The key to use for this file, or a file configuration object.
* @param {string} [url] - The absolute or relative URL to load this file from. If undefined or `null` it will be set to `<key>.png`, i.e. if `key` was "alien" then the URL will be "alien.png".
* @param {XHRSettingsObject} [xhrSettings] - Extra XHR Settings specifically for this file.
* @param {Phaser.Loader.FileTypes.ImageFrameConfig} [frameConfig] - The frame configuration object. Only provided for, and used by, Sprite Sheets.
*/
var ImageFile = new Class({
@ -82,6 +108,13 @@ var ImageFile = new Class({
}
},
/**
* Called automatically by Loader.nextFile.
* This method controls what extra work this File does with its loaded data.
*
* @method Phaser.Loader.FileTypes.ImageFile#onProcess
* @since 3.7.0
*/
onProcess: function ()
{
this.state = CONST.FILE_PROCESSING;
@ -109,6 +142,12 @@ var ImageFile = new Class({
File.createObjectURL(this.data, this.xhrLoader.response, 'image/png');
},
/**
* Adds this file to its target cache upon successful loading and processing.
*
* @method Phaser.Loader.FileTypes.ImageFile#addToCache
* @since 3.7.0
*/
addToCache: function ()
{
var texture;
@ -141,21 +180,62 @@ var ImageFile = new Class({
});
/**
* Adds an Image file to the current load queue.
* Adds an Image, or array of Images, to the current load queue.
*
* Note: This method will only be available if the Image File type has been built into Phaser.
* The file is **not** loaded immediately, it is added to a queue ready to be loaded either when the loader starts,
* or if it's already running, when the next free load slot becomes available. This means you cannot use the file
* immediately after calling this method, but instead my wait for the file to complete.
*
* Phaser can load all common image types: png, jpg, gif and any other format the browser can natively handle.
* If you try to load an animated gif only the first frame will be rendered. Browsers do not natively support playback
* of animated gifs to Canvas elements.
*
* The file is **not** loaded immediately after calling this method.
* Instead, the file is added to a queue within the Loader, which is processed automatically when the Loader starts.
* The key must be a unique String. It is used to add the file to the global Texture Manager upon a successful load.
* The key should be unique both in terms of files being loaded and files already present in the Texture Manager.
* Loading a file using a key that is already taken will result in a warning. If you wish to replace an existing file
* then remove it from the Texture Manager first, before loading a new one.
*
* Instead of passing arguments you can pass a configuration object, such as:
*
* ```javascript
* this.load.image({
* key: 'logo',
* url: 'images/AtariLogo.png'
* });
* ```
*
* See the documentation for `Phaser.Loader.FileTypes.ImageFileConfig` for more details.
*
* Once the file has finished loading you can use it as a texture for a Game Object by referencing its key:
*
* ```javascript
* this.load.image('logo', 'images/AtariLogo.png');
* // and later in your game ...
* this.add.image(x, y, 'logo');
* ```
*
* If you have specified a prefix in the loader, via `Loader.setPrefix` then this value will be prepended to this files
* key. For example, if the prefix was `MENU.` and the key was `Background` the final key will be `MENU.Background` and
* this is what you would use to retrieve the image from the Texture Manager.
*
* The URL can be relative or absolute. If the URL is relative the `Loader.baseURL` and `Loader.path` values will be prepended to it.
*
* If the URL isn't specified the Loader will take the key and create a filename from that. For example if the key is "alien"
* and no URL is given then the Loader will set the URL to be "alien.png". It will always add `.png` as the extension, although
* this can be overridden if using an object instead of method arguments. If you do not desire this action then provide a URL.
*
* Note: Th ability to load this type of file will only be available if the Image File type has been built into Phaser.
* It is available in the default build but can be excluded from custom builds.
*
* @method Phaser.Loader.LoaderPlugin#image
* @fires Phaser.Loader.LoaderPlugin#addFileEvent
* @since 3.0.0
*
* @param {string} key - [description]
* @param {string} url - [description]
* @param {XHRSettingsObject} [xhrSettings] - [description]
* @param {(string|Phaser.Loader.FileTypes.ImageFileConfig|Phaser.Loader.FileTypes.ImageFileConfig[])} key - The key to use for this file, or a file configuration object, or array of them.
* @param {string} [url] - The absolute or relative URL to load this file from. If undefined or `null` it will be set to `<key>.png`, i.e. if `key` was "alien" then the URL will be "alien.png".
* @param {XHRSettingsObject} [xhrSettings] - An XHR Settings configuration object. Used in replacement of the Loaders default XHR Settings.
*
* @return {Phaser.Loader.LoaderPlugin} The Loader.
* @return {Phaser.Loader.LoaderPlugin} The Loader instance.
*/
FileTypesManager.register('image', function (key, url, xhrSettings)
{