登录内测(欢迎小伙伴们通过右侧登录按钮进行注册和登录)
如果你的英语过了四级,请看: 英文原版

本篇文档翻译者:channingbreeze

Phaser.Loader

new Loader(game)

加载器加载所有外部内容,如图像、声音、纹理地图集和数据文件。

加载器可以从标签(如图像元素img)和XHR中加载资源,并且提供加载进度和加载完成事件的回调接口。

支持和默认启用并行加载,并行加载前的一些行为可以通过withSyncPoint来控制。

Atlas的素材集可以通过Texture Packer或者Shoebox来制作。

参数:

参数名参数类型描述
gamePhaser.Game当前游戏的引用。

源码 - loader/Loader.js, line 22

成员

<static, constant>PHYSICS_LIME_CORONA_JSON : number

源码 - loader/Loader.js, line 299

<static, constant>PHYSICS_PHASER_JSON : number

源码 - loader/Loader.js, line 305

<static, constant>TEXTURE_ATLAS_JSON_ARRAY : number

源码 - loader/Loader.js, line 281

<static, constant>TEXTURE_ATLAS_JSON_HASH : number

源码 - loader/Loader.js, line 287

<static, constant>TEXTURE_ATLAS_JSON_PYXEL : number

源码 - loader/Loader.js, line 311

<static, constant>TEXTURE_ATLAS_XML_STARLING : number

源码 - loader/Loader.js, line 293

_withSyncPointDepth : integer

一个计数器,如果大于0,文件将自动添加为同步点。

源码 - loader/Loader.js, line 204

baseURL : string

如果你想在所有资源前面添加一个URL,可以设置此参数。这个参数必须以/结尾

源码 - loader/Loader.js, line 83

crossOrigin : boolean|string

跨域设置,此值经常被设置为'anonymous'

源码 - loader/Loader.js, line 74

enableParallel : integer

并行加载,默认开启。如果要关闭,要在加载资源前,设置此值为false。

源码 - loader/Loader.js, line 188

hasLoaded : boolean

如果所有资源都加载完成,此值为true。

源码 - loader/Loader.js, line 57

isLoading : boolean

如果正在加载资源,此值为true。

源码 - loader/Loader.js, line 50

onFileComplete : Phaser.Signal

当一个资源文件(file)加载成功或者加载失败时,触发此信号。它的回调函数将接受以下参数:进度、文件的key、是否成功、总共加载了多少文件、总共要加载多少文件。其中进度是一个1到100的数,表示百分比。

源码 - loader/Loader.js, line 152

onFileError : Phaser.Signal

当一个资源文件(file)或者资源包(pack)加载失败时,触发此信号。如果是资源文件(file),它会在onFileComplete之前被触发。如果是资源包(pack),它会在onPackComplete之前被触发。

参数:(file key, file)

源码 - loader/Loader.js, line 163

onFileStart : Phaser.Signal

当一个资源文件开始加载的时候,触发此信号。这个信号触发后,资源文件可能加载成功,也可能加载失败。

参数:(progress, file key, file url)

源码 - loader/Loader.js, line 139

onLoadComplete : Phaser.Signal

最后一个资源加载完成或加载失败时,触发此信号。

源码 - loader/Loader.js, line 118

onLoadStart : Phaser.Signal

加载进度开始计算时,触发此信号。发生于第一个资源文件被请求前,但是在包(pack)描述文件被加载后

源码 - loader/Loader.js, line 111

onPackComplete : Phaser.Signal

当一个资源包加载完成或者加载失败时,触发此信号。当一个资源包的清单(manifest)文件加载成功,并且把内容加入加载队列(loader queue)的时候触发此信号。

参数:(pack key, success?, total packs loaded, total packs)

源码 - loader/Loader.js, line 129

path : string

如果设置此值,将在所有相对路径前加上它。比如:

load.path = "images/sprites/";

load.image("ball", "ball.png");

load.image("tree", "level1/oaktree.png");

load.image("boom", "http://server.com/explode.png");

会从images/sprites/ball.png去加载ball,从images/sprites/level1/oaktree.png去加载tree,但是从http://server.com/explode.png去加载boom

path会被加在文件名前,但是在baseURL之后,要以'/'结尾

源码 - loader/Loader.js, line 103

progress : integer

取整后的进度(0-100)

源码 - loader/Loader.js, line 2987

progressFloat : number

进度(0.0-100.0)。在很多文件动态加载的情况下,进度可能会反而变小。

源码 - loader/Loader.js, line 2969

resetLocked : boolean

如果此值为true,则Loader.reset不起作用。如果你要在进入加载场景前创建一个加载队列,可以用这个。

源码 - loader/Loader.js, line 43

方法

addSyncPoint(type, key) : → {Phaser.Loader}

在加载队列中给指定文件添加一个同步点。对于已经加载过的文件无效。

参数:

参数名参数类型描述
typestring资源类型(image, audio, xml 等)。
keystring资源索引(key)。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1631

atlas(key, textureURL, atlasURL, atlasData, format) : → {Phaser.Loader}

在加载队列中添加一个atlas资源文件。Atlas的素材集可以通过Texture Packer或者Shoebox来制作。如果用Texture Packer,建议勾选Trim sprite names。生成资源的时候不要选择“旋转”。

你可以通过URL来提供一个json文件,也可以通过参数atlasData,传递一个json对象或者一个string。如果你传入string,会被直接JSON.parse,然后被加入到Phaser.Cache。

如果提供的是URL,文件不会马上被加载,而是被放入加载队列。参数key要是唯一的,它会是Phaser.Cache中的键。

可以通过Cache.getImage(key)来获取文件。JSON文件会被自动加载解析。如果你希望控制JSON文件的解析,那就用Loader.text

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传textureURL参数,Loader会自动创建一个文件名。比如key是player,textureURL没传,Loader会将URL设置为player.png。对于atlasURL来说是一样的,比如key是player,atlasURL会变成player.json。如果你不希望这样,就传参数或者传json对象。

参数:

参数名参数类型是否可选描述
keystring资源索引(key)。
textureURLstring可选texture图像URL。如果是null,会被设置为<key>.png,例如key是alien,URL会被设置为alien.png
atlasURLstring可选atlas数据文件URL。如果是null,会被设置为<key>.json,例如key是alien,URL会被设置为alien.json
atlasDataobject可选JSON或者XML对象,如果指定了URL,就不需要此参数。
formatnumber可选数据格式。可以是 Phaser.Loader.TEXTURE_ATLAS_JSON_ARRAY(默认), Phaser.Loader.TEXTURE_ATLAS_JSON_HASH 或者 Phaser.Loader.TEXTURE_ATLAS_XML_STARLING

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1500

atlasJSONArray(key, textureURL, atlasURL, atlasData) : → {Phaser.Loader}

在加载队列中添加一个atlas资源文件。希望数据是JSON数组。Atlas的素材集可以通过Texture Packer或者Shoebox来制作。如果用Texture Packer,建议勾选Trim sprite names。生成资源的时候不要选择“旋转”。

你可以通过URL来提供一个json文件,也可以通过参数atlasData,传递一个json对象或者一个string。如果你传入string,会被直接JSON.parse,然后被加入到Phaser.Cache。

如果提供的是URL,文件不会马上被加载,而是被放入加载队列。参数key要是唯一的,它会是Phaser.Cache中的键。

可以通过Cache.getImage(key)来获取文件。JSON文件会被自动加载解析。如果你希望控制JSON文件的解析,那就用Loader.text

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传textureURL参数,Loader会自动创建一个文件名。比如key是player,textureURL没传,Loader会将URL设置为player.png。对于atlasURL来说是一样的,比如key是player,atlasURL会变成player.json。如果你不希望这样,就传参数或者传json对象。

参数:

参数名参数类型是否可选描述
keystring资源索引(key)。
textureURLstring可选texture图像URL。如果是null,会被设置为<key>.png,例如key是alien,URL会被设置为alien.png
atlasURLstring可选atlas数据文件URL。如果是null,会被设置为<key>.json,例如key是alien,URL会被设置为alien.json
atlasDataobject可选JSON或者XML对象,如果指定了URL,就不需要此参数。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1354

atlasJSONHash(key, textureURL, atlasURL, atlasData) : → {Phaser.Loader}

在加载队列中添加一个atlas资源文件。希望数据是JSON对象。Atlas的素材集可以通过Texture Packer或者Shoebox来制作。如果用Texture Packer,建议勾选Trim sprite names。生成资源的时候不要选择“旋转”。

你可以通过URL来提供一个json文件,也可以通过参数atlasData,传递一个json对象或者一个string。如果你传入string,会被直接JSON.parse,然后被加入到Phaser.Cache。

如果提供的是URL,文件不会马上被加载,而是被放入加载队列。参数key要是唯一的,它会是Phaser.Cache中的键。

可以通过Cache.getImage(key)来获取文件。JSON文件会被自动加载解析。如果你希望控制JSON文件的解析,那就用Loader.text

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传textureURL参数,Loader会自动创建一个文件名。比如key是player,textureURL没传,Loader会将URL设置为player.png。对于atlasURL来说是一样的,比如key是player,atlasURL会变成player.json。如果你不希望这样,就传参数或者传json对象。

参数:

参数名参数类型是否可选描述
keystring资源索引(key)。
textureURLstring可选texture图像URL。如果是null,会被设置为<key>.png,例如key是alien,URL会被设置为alien.png
atlasURLstring可选atlas数据文件URL。如果是null,会被设置为<key>.json,例如key是alien,URL会被设置为alien.json
atlasDataobject可选JSON或者XML对象,如果指定了URL,就不需要此参数。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1400

atlasXML(key, textureURL, atlasURL, atlasData) : → {Phaser.Loader}

在加载队列中添加一个atlas资源文件。希望数据是XML格式。Atlas的素材集可以通过Texture Packer或者Shoebox来制作。如果用Texture Packer,建议勾选Trim sprite names。生成资源的时候不要选择“旋转”。

你可以通过URL来提供一个json文件,也可以通过参数atlasData,传递一个json对象或者一个string。如果你传入string,会被直接JSON.parse,然后被加入到Phaser.Cache。

如果提供的是URL,文件不会马上被加载,而是被放入加载队列。参数key要是唯一的,它会是Phaser.Cache中的键。

可以通过Cache.getImage(key)来获取文件。JSON文件会被自动加载解析。如果你希望控制JSON文件的解析,那就用Loader.text

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传textureURL参数,Loader会自动创建一个文件名。比如key是player,textureURL没传,Loader会将URL设置为player.png。对于atlasURL来说是一样的,比如key是player,atlasURL会变成player.json。如果你不希望这样,就传参数或者传json对象。

参数:

参数名参数类型是否可选描述
keystring资源索引(key)。
textureURLstring可选texture图像URL。如果是null,会被设置为<key>.png,例如key是alien,URL会被设置为alien.png
atlasURLstring可选atlas数据文件URL。如果是null,会被设置为<key>.json,例如key是alien,URL会被设置为alien.json
atlasDataobject可选JSON或者XML对象,如果指定了URL,就不需要此参数。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1446

audio(key, urls, autoDecode) : → {Phaser.Loader}

在加载队列中添加一个音频文件。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getSound(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

移动端请注意:有一些设备(如ipad2,ipad mini)不能播放48000Hz的音频,会导致音频播放系统奔溃,解决方案是使用低频的音频,比如44100Hz。

参数:

参数名参数类型是否可选默认值描述
keystring音频文件的键值。
urlsstring|Array.<string>|Array.<object>字符串,字符串数组,或者是一个对象数组,数组中的元素都是{uri: .., type: ..}。如果是一个数组,那么第一个设备兼容的URI会被选择。比如:"jump.mp3"['jump.mp3', 'jump.ogg', 'jump.m4a']或者[{uri: "data:<opus_resource>", type: 'opus'}, 'fallback.mp3']。BLOB和DATA URIs只能用对象数组方式加载。
autoDecodeboolean可选true使用Web Audio时,音频资源可以在加载时解码,也可以在运行时解码。因为音频文件在使用前必须先解码,如果此值为true,那么音频被加载后就会马上解码。音频解码是异步的,但是会严重耗费CPU,尤其是在移动端。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 968

audiosprite(key, urls, jsonURL, jsonData, autoDecode) : → {Phaser.Loader}

在加载队列中添加一个音频精灵。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

音频精灵是音频文件和JSON配置的组合。JSON格式可以参考https://github.com/tonistiigi/audiosprite

可以通过Cache.getSoundData(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

参数:

参数名参数类型是否可选默认值描述
keystring音频精灵的键值。
urlsArray|string可以是一个包含音频文件URL的数组,例如:['audiosprite.mp3', 'audiosprite.ogg', 'audiosprite.m4a'],也可以是一个字符串,只表示一个音频文件的URL。
jsonURLstring可选null音频精灵的JSON配置文件的URL。如果你想直接传JSON数据,把这个值设为null。
jsonDatastring|object可选null音频精灵的JSON配置对象。如果jsonURL不是null,那么此值会被忽略。
autoDecodeboolean可选true使用Web Audio时,音频资源可以在加载时解码,也可以在运行时解码。因为音频文件在使用前必须先解码,如果此值为true,那么音频被加载后就会马上解码。音频解码是异步的,但是会严重耗费CPU,尤其是在移动端。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1011

binary(key, url, callback, callbackContext) : → {Phaser.Loader}

在加载队列中添加一个二进制文件。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getBinary(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定URL,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.bin。

它会通过xhr加载,返回类型是arraybuffer。你可以在文件加载完成后设置一个回调来处理数据,回调有两个参数,文件key和文件数据。

参数:

参数名参数类型是否可选默认值描述
keystring二进制文件的键值。
urlstring可选二进制文件的URL。如果是undefined或者null,URL会被设置为<key>.bin,例如:key是alien,URL就是alien.bin
callbackfunction可选(none)文件加载完成后的回调函数,你可以在这里对二进制进行进一步处理。
callbackContextobject可选回调的上下文,如果没有指定,会用callback自己作为上下文。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 888

bitmapFont(key, textureURL, atlasURL, atlasData, xSpacing, ySpacing) : → {Phaser.Loader}

在加载队列中添加一个位图字体文件。

Windows下可以用BMFont(免费),mac下可以用Glyph Designer(商业版收费),或者用web在线的Littera(免费)都可以创建位图字体。

你可以通过提供一个XML文件的URL地址,从网络加载字体。或者给atlasData传一个XML对象或者字符串。如果传字符串,它会被Loader.parseXML直接解析成XML对象放入Phaser.Cache。

调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getBitmapFont(key)来获取文件。XML文件会在加载后自动解析,如果你需要控制XML的解析时间,你可以用Loader.text,然后自己解析XML文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定textureURL,加载器会根据key生成一个文件名。例如key是megaFont,没指定URL,加载器会把URL设置为megaFont.png。atlasURL也一样,如果没有指定atlasURL,也没有atlasData,加载器会根据key生成一个atlasURL,例如key是megaFont,则atlasURL是megaFont.xml

如果你不想这样,就提供Url和data。

参数:

参数名参数类型是否可选默认值描述
keystring位图字体文件的键值。
textureURLstring位图字体文件的图片的URL。如果是undefined或者null,URL会被设置为<key>.png,例如:key是megaFont,URL就是megaFont.png
atlasURLstring位图字体文件的描述文件的URL。如果是undefined或者null,而且atlasData也是null,URL会被设置为<key>.xml,例如:key是megaFont,URL就是megaFont.xml
atlasDataobject可选位图字体描述,字符串或者XML对象。
xSpacingnumber可选0字母间的水平间隙。
ySpacingnumber可选0字母间的垂直间隙。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1263

checkKeyExists(type, key) : → {boolean}

检查一个文件/资源是否在加载队列中。

可以用Phaser.Cache来获取一个已经加载的资源,例如:Phaser.Cache#checkImageKey

参数:

参数名参数类型描述
typestring资源类型(image, audio, xml 等)。
keystring资源索引(key)。

返回:如果存在返回true,否则返回false。

源码 - loader/Loader.js, line 367

getAsset(type, key) : → {any}

获取一个文件/资源。

只有在加载队列中的文件能够被找到。

参数:

参数名参数类型描述
typestring资源类型(image, audio, xml 等)。
keystring资源索引(key)。

返回:如果找到,返回一个有index和file两个属性的对象,否则返回false。index会经常变化,只能在这个函数被调用后马上使用。

源码 - loader/Loader.js, line 418

getAssetIndex(type, key) : → {number}

获取一个文件/资源在加载队列中的索引。

只有在加载队列中的文件能够被找到。

参数:

参数名参数类型描述
typestring资源类型(image, audio, xml 等)。
keystring资源索引(key)。

返回:如果找到,返回文件/资源在加载队列中的索引,否则返回-1。index会经常变化,只能在这个函数被调用后马上使用。

源码 - loader/Loader.js, line 418

image(key, url, overwrite) : → {Phaser.Loader}

在加载队列中添加一个图片。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

Phaser可以处理png,jpg,gif等浏览器原生支持的图片。

可以通过Cache.getImage(key)来获取图片。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.png。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystring图片的键值。
urlstring可选图片的url。如果没设置,url会变成<key>.png,例如key是alien,url会被设置为alien.png
overwriteboolean可选false如果一个key对应的图片已经存在,该值为true,则新图片覆盖原图片。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 670

images(key, urls) : → {Phaser.Loader}

在加载队列中添加一组图片。它相当于对组中每一个image调用Loader.image方法。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

Phaser可以处理png,jpg,gif等浏览器原生支持的图片。

可以通过Cache.getImage(key)来获取图片。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.png。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keysstring图片的键值组成的数组。
urlsstring可选图片的url组成的数组。如果没设置,url会变成<key>.png,例如key是alien,url会被设置为alien.png。如果设置,url数组长度要和key数组长度匹配。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 699

json(key, url, overwrite) : → {Phaser.Loader}

在加载队列中添加一个JSON文件。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getJSON(key)来获取JSON文件。JSON文件被加载后就会被解析。如果你想控制JSON的解析,就用Loader.text来加载文件,然后自己parseJSON。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.json。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystringJSON文件的键值。
urlstring可选JSON文件的url。如果没设置,url会变成<key>.json,例如key是alien,url会被设置为alien.json
overwriteboolean可选false如果一个key对应的JSON文件已经存在,该值为true,则新文件覆盖原文件。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 771

pack(key, url, data, callbackContext) : → {Phaser.Loader}

在加载队列中添加一个打包文件。一个打包文件是一个JSON文件,包含一系列要被加载的资源,可以查看示例。打包文件会被放在队列前面。key必须唯一。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

参数:

参数名参数类型是否可选默认值描述
keystring打包文件的键值。
urlstring可选打包文件的url。如果想直接通过JSON对象来设定打包文件,此值传null。
dataobject可选打包文件的JSON数据。用这个参数直接传递一个JSON对象。
callbackContextobject可选(loader)一些加载资源的过程,需要给它们的回调传递上下文,例如Binary和Script。在这里传递上下文。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 590

physics(key, url, data, format) : → {Phaser.Loader}

在加载队列中添加一个物理数据文件。数据必须是Lime + Corona的JSON格式。Physics Editor默认可以导出这种格式。

你可以从URL去加载这个文件,也可以直接传递一个JSON对象。如果你传的是一个string,会自动调用JSON.parse来解析它。

调用这个方法之后,如果传递URL,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getJSON(key)来获取JSON文件。JSON文件被加载后就会被解析。如果你想控制JSON的解析,就用Loader.text来加载文件,然后自己parseJSON。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.json。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystring物理数据文件的键值。
urlstring可选物理数据文件的url。如果传null或undefined,也没有设置参数data,url会被设置为<key>.json,比如,key是alien,url会被设置为alien.json。
dataobject|string可选JSON对象,用来指定物理数据。如果设置了此值,参数url会被忽略。
formatstring可选Phaser.Physics.LIME_CORONA_JSON物理数据的格式。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1202

script(key, url, callback, callbackContext) : → {Phaser.Loader}

在加载队列中添加一个javascript文件。

调用这个方法之后,如果传递URL,文件不会马上加载,只是放到了加载队列。key必须唯一。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.js。如果你不想这样,就提供url。

成功加载后,js会变成一个script标签,马上被执行,所以要小心!

当script标签被创建之后,可以指定一个callback,callback要返回相关数据。

参数:

参数名参数类型是否可选默认值描述
keystring脚本文件的键值。
urlstring可选脚本文件的url。如果传null或undefined,url会被设置为<key>.js,比如,key是alien,url会被设置为alien.js。
callbackfunction可选(none)script标签被创建之后,可以指定一个回调函数。你可以用这招做一些额外事情。
callbackContextobject可选(loader)回调函数的上下文,如果没指定,就是Phaser.Loader。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 853

setPreloadSprite(sprite, direction)

把一个精灵设置为加载精灵。

加载精灵会根据加载的百分比,动态裁剪自己的宽度和高度,这样做Loading进度条就很简单了。

参数:

参数名参数类型是否可选默认值描述
spritePhaser.Sprite|Phaser.Image在加载时会根据进度被裁剪的精灵。
directionnumber可选00--水平,1--垂直。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 315

shader(key, url, overwrite) : → {Phaser.Loader}

在加载队列中添加一个像素shader文件。

调用这个方法之后,如果传递URL,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getShader(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是blur,没指定URL,加载器会把URL设置为blur.frag。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystringshader文件的键值。
urlstring可选shader文件的url。如果传null或undefined,url会被设置为<key>.frag,比如,key是blur,url会被设置为blur.frag。
overwriteboolean可选false如果一个key对应的文件已经存在,该值为true,则新文件覆盖原文件。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 799

spritesheet(key, url, frameWidth, frameHeight, frameMax, margin, spacing) : → {Phaser.Loader}

在加载队列中添加一个精灵序列文件。

调用这个方法之后,如果传递URL,文件不会马上加载,只是放到了加载队列。key必须唯一。

专业术语解释:spritesheet是一个图片,通常包含一个动画的所有帧,这些帧有着相同的尺寸,按照顺序排列着。比如帧大小是32x32,那么在spritesheet中的每一帧,都是32x32。在Phaser之外的其他引擎里,spritesheet可能指的是atlas纹理。altas纹理就是把图片打包在一起,不管是什么尺寸的图片都可以。Texture Packer、Flash CC或者Shoebox都可以生成atlas纹理。如果你想加载atlas纹理,用Loader.atlas

可以通过Cache.getImage(key)来获取文件。精灵序列文件和其他图片一样。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.png。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystringspritesheet文件的键值。
urlstringspritesheet文件的url。如果传null或undefined,url会被设置为<key>.png,比如,key是alien,url会被设置为alien.png。
frameWidthnumberspritesheet中一帧的宽度,像素为单位。
frameHeightnumberspritesheet中一帧的高度,像素为单位。
frameMaxnumber可选-1spritesheet中有多少帧,如果不指定,整张图片都被当作spritesheet。
marginnumber可选0如果spritesheet的帧之间有margin,在这里指定。
spacingnumber可选0如果spritesheet的帧之间有spacing,在这里指定。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 926

start()

开始加载资源。通常你不需要手动调用它,StateManager会调用。

源码 - loader/Loader.js, line 1691

text(key, url, overwrite) : → {Phaser.Loader}

在加载队列中添加一个文本文件。

调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getText(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有指定url,加载器会根据key生成一个文件名。例如key是alien,没指定URL,加载器会把URL设置为alien.txt。如果你不想这样,就提供url。

参数:

参数名参数类型是否可选默认值描述
keystring文本文件的键值。
urlstring可选文本文件的url。如果传null或undefined,url会被设置为<key>.txt,比如,key是alien,url会被设置为alien.txt。
overwriteboolean可选false如果一个key对应的文件已经存在,该值为true,则新文件覆盖原文件。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 744

tilemap(key, url, data, format) : → {Phaser.Loader}

在加载队列中添加一个瓦片地图。

你可以通过URL来提供一个json文件,也可以通过参数data,传递一个json对象或者一个string。如果你传入string,会被直接JSON.parse,然后被加入到Phaser.Cache。

如果提供的是URL,文件不会马上被加载,而是被放入加载队列。参数key要是唯一的,它会是Phaser.Cache中的键。

可以通过Cache.getTilemapData(key)来获取文件。JSON文件会被自动加载解析。如果你希望控制JSON文件的解析,那就用Loader.text

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传url参数,Loader会自动创建一个文件名。比如key是level1,url没传,Loader会将URL设置为level1.json。如果你把format设置为Tilemap.CSV,那url会被设置为level1.csv。如果你不希望这样,就传参数或者传json对象。

参数:

参数名参数类型是否可选默认值描述
keystring资源索引(key)。
urlstring可选瓦片地图url。如果是null,会被设置为<key>.json,例如key是level1,URL会被设置为level1.json
dataobject|string可选可选的JSON对象,如果指定该值,url参数就失效。
formatnumber可选Phaser.Tilemap.CSV数据格式。可以是 Phaser.Tilemap.CSV或者Phaser.Tilemap.TILED_JSON

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1125

video(key, urls, loadEvent, asBlob) : → {Phaser.Loader}

在加载队列中添加一个视频文件。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getVideo(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

你没有必要去预先加载一个视频文件,详情可查看Video.createVideoFromURL

参数:

参数名参数类型是否可选默认值描述
keystring视频文件的键值。
urlsstring|Array.<string>|Array.<object>字符串,字符串数组,或者是一个对象数组,数组中的元素都是{uri: .., type: ..}。如果是一个数组,那么第一个设备兼容的URI会被选择。比如:"boom.mp4"['boom.mp4', 'boom.ogg', 'boom.webm']或者[{uri: "data:<opus_resource>", type: 'opus'}, 'fallback.mp4']。BLOB和DATA URIs只能用对象数组方式加载。
loadEventstring可选'canplaythrough'加载视频源时,当收到loadEvent设定的事件时,认为加载结束。默认的canplaythrough事件是在视频加载得足够多,并且带宽足够大,使得视频可以被播放完整的时候触发。canplay事件是在视频加载到可以播放的时候触发,但是不一定能够播放完整。loadeddata事件仅仅保证视频的元数据和第一帧已经下载完毕。火狐默认事件是loadeddata,其他是canplaythrough。
asBlobboolean可选false视频文件可以通过video标签的src属性加载,或者通过xhr请求,作为二进制文件保存在内存中(IE9和Android2不支持)。如果你需要同时在几个精灵中播放不同的视频文件,那就用二进制的方式,设该值为true。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1071

withSyncPoints(callback, callbackContext) : → {Phaser.Loader}

给通过回调添加的资源/文件添加一个同步点。

一个同步点可以确保一个资源加载完成后,它之后的资源才开始加载。一个被标志为同步点的资源,不需要等待其他资源的加载(除非其他资源也是同步点)。一些资源,比如pack,可以在同步点前后被加载,只要它没有结束加载过程。(说实话不太懂这段,啥意思?)

参数:

参数名参数类型是否可选默认值描述
callbackfunction回调有一个参数:loader。
callbackContextobject可选loader回调上下文

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 1605

xml(key, url, overwrite) : → {Phaser.Loader}

在加载队列中添加一个XML文件。调用这个方法之后,文件不会马上加载,只是放到了加载队列。key必须唯一。

可以通过Cache.getXML(key)来获取文件。

URL可以是相对路径,也可以是绝对路径。如果是相对路径,Loader.baseURLLoader.path会加在它前面。

如果没有传url参数,Loader会自动创建一个文件名。比如key是alien,url没传,Loader会将URL设置为alien.xml。如果你不希望这样,就传url参数。

参数:

参数名参数类型是否可选默认值描述
keystringXML文件的键值。
urlstring可选XML文件的url。如果传null或undefined,url会被设置为<key>.xml,比如,key是alien,url会被设置为alien.xml。
overwriteboolean可选false如果一个key对应的文件已经存在,该值为true,则新文件覆盖原文件。

返回:Phaser.Loader,加载器引用。

源码 - loader/Loader.js, line 826