Commit graph

192 commits

Author SHA1 Message Date
Richard Davey
6921b30d94 The Loader can now load external fragment shaders (.frag files) 2015-07-15 23:22:25 +01:00
Richard Davey
502dd548fb Loader.path is a string and if set it is placed before any _relative_ file path given to the Loader. For example: load.path = "images/sprites/"; followed by load.image("ball", "ball.png"); and load.image("tree", "level1/oaktree.png"); would load the ball file from images/sprites/ball.png and the tree from images/sprites/level1/oaktree.png. The path is added before the filename but *after* the Loader.baseURL. The path _must_ end with a "/". Set it to nothing to disable the path. 2015-07-12 23:43:35 +01:00
Richard Davey
a7a74550a5 Merge pull request #1837 from Feenposhleen/dev
JSON support for BitmapFont atlases
2015-06-17 01:49:23 +01:00
Richard Davey
8a750a1f1e Merge pull request #1777 from boniatillo-com/assetpack_audiosprite
Load audiosprite from asset pack
2015-06-16 16:43:06 +01:00
photonstorm
8de9e0c076 Fixed loadEvent argument. 2015-06-13 02:30:00 +01:00
photonstorm
7d308a2169 Added loadEvent parameter to Loader.video. 2015-06-12 19:19:43 +01:00
Charlo
70428fd39c Fixed linting errors 2015-06-06 12:54:14 +02:00
Charlo
17a8116382 Added JSON support for BitmapFont 2015-06-06 12:35:08 +02:00
photonstorm
621e51d949 Docs update about the lovely 48000 Hz music bug. 2015-05-23 03:37:04 +01:00
photonstorm
d2bcb3562b If transformUrl is given an invalid URL it returns false. 2015-05-19 14:19:24 +01:00
photonstorm
4fa99f52c5 jsdocs fix and video loader fallback for Firefox. 2015-05-14 23:23:22 +01:00
photonstorm
aabeccbdac Working but needs refining. 2015-05-14 19:10:36 +01:00
photonstorm
71b242386d Added video loadeddata callback for Firefox (which doesn't throw the canplay event until you actually start to play the video.. awesome, thanks Firefox) 2015-05-14 16:52:09 +01:00
photonstorm
45278a1816 Tidied up the video loader. 2015-05-05 16:25:30 +01:00
photonstorm
d8c109b0a2 Tidying comments. 2015-05-05 14:00:05 +01:00
photonstorm
afb162849a Docs update. 2015-05-04 03:00:03 +01:00
photonstorm
77468e7876 Loader.video allows you to load a video file into Phaser. It works in the same way as Loader.audio, allowing you to pass an array of video files - and it will load the first one the device is capable of playing back. You can optionally load the video via xhr where the video data is converted to a Blob upon successful load. 2015-05-03 13:53:03 +01:00
Boniatillo.com
9017081ef6 Fix to #1776: load audiosprite from assetpack
The loader process the asset pack but use the method "audio" instead of
"audiosprite". The fix is to call "audiosprite" with the right
arguments.
2015-05-02 10:40:38 +02:00
photonstorm
4c0e34e788 jsdoc fixes. 2015-04-29 13:13:47 +01:00
photonstorm
30450cb9bc Loader.atlas and Cache.addTextureAtlas will now automatically determine the format of the JSON data (array or hash) when added to the Cache. You no longer need to specify it explicitly if JSON, only if XML. 2015-04-23 02:35:09 +01:00
photonstorm
6c96568dd1 Files can now be added to the Loader with an absolute URL even if you have a Loader.baseURL set. In previous versions the baseURL would still be prepended to the file URL, but the Loader now checks if the a file URL begins with http or // and skips prepending the baseURL to it.
All calls to Loader methods that add files to the queue, such as `Loader.image` or `Loader.atlas`, now have the URL as an optional parameter. If not set Loader will assume the URL to be based on the key given. For example the following: `game.load.image("boom", "boom.png")` can now be expressed as just `game.load.image("boom")`, or `game.load.atlas("player", "player.png", "player.json")` can now be shortened to `game.load.atlas("player")`. Please see the freshly updated jsdocs for full details.
2015-04-21 02:14:41 +01:00
photonstorm
79ace60997 Added guard around the xhr onload try / catch block, so it doesn't incorrectly report errors as being from the Loader when they may have been throw by the create method. 2015-03-25 16:13:52 +00:00
photonstorm
506ff8843e Fixed incorrect use of this.response which broke Binary files with callbacks. Should be all of them caught now - ProTracker example now works again as a result too. 2015-03-23 10:52:43 +00:00
photonstorm
35a9bdcfc9 Fixed loading of physics json data (old responseText reference) 2015-03-23 10:46:38 +00:00
Paul
cc5d1d02e5 Loader: loading from pack data
- Corrected logic where packs added via data would still try to be loaded.
  This makes the behavior correct per the documentation and v2.2
2015-03-15 20:26:37 -07:00
photonstorm
a69e53f901 Copyright date change. 2015-02-25 03:36:23 +00:00
photonstorm
466a4d11bb Loader.preloadSprite had an extra guard added to ensure it didn't try to updateCrop a non-existent sprite (thanks @noidexe #1636) 2015-02-25 03:08:37 +00:00
Paul
3e5c1532d8 Fixed jsdoc-abort bug with "||" in jsdoc type
- jsdoc aborts on x||y found in types..
2015-02-22 20:51:00 -08:00
photonstorm
599bcf5f97 Loader.audiosprite has a new jsonData parameter. It allows you to pass a pre-existing JSON object (or a string which will be parsed as JSON) to use as the audiosprite data, instead of specifying a URL to a JSON file on the server (thanks @jounii #1447)
Loader.audiosprite has a new `autoDecode` parameter. If `true` the audio file will be decoded immediately upon load.
2015-02-11 16:16:58 +00:00
photonstorm
ea86bc85b4 jsdoc typo / spelling fixes.
Also all audio decoding is now passed to the SoundManager to handle, rather than duplicate the effort in the Loader.
2015-02-11 05:18:52 +00:00
photonstorm
cc7096b045 jsdoc fix #1543 2015-02-10 21:22:36 +00:00
photonstorm
0054dc996b The Loader now directly calls StateManager.loadComplete rather than the StateManager listening for the loadComplete event, because Loader.reset unbinds this event (and it's easy to accidentally remove it too)
Loader.onLoadComplete is dispatched *before* the Loader is reset. If you have a `create` method in your State please note that the Loader will have been reset before this method is called. This allows you to immediately re-use the Loader without having to first reset it manually.
2015-02-10 17:04:04 +00:00
photonstorm
c154b8c785 Loader.resetLocked is a boolean that allows you to control what happens when the loader is reset, *which happens automatically on a State change*. If you set resetLocked to true it allows you to populate the loader queue in one State, then swap to another State without having the queue erased, and start the load going from there. After the load has completed you could then disable the lock again as needed.
Loader.reset has a new optional 2nd parameter `clearEvents` which if set to `true` (the default is false) will reset all event listeners bound to the Loader.
2015-02-10 11:58:17 +00:00
photonstorm
2cb9ea312b extension URL fix, jsdoc fix and small format changes. 2015-02-09 20:27:47 +00:00
Paul
367d976061 Loader: documentation
- Corrected some documentation wrt. parallel downloading
2015-02-08 20:40:54 -08:00
Paul
b63f6873e5 Loader: better audio selection
- Fixed bug where `.` in query portion of URI could throw off
  auto-detection
- Allow `Loader#audio` to accept `{uri..,type..}` objects to blobs (and
  data) URIs can also be used to auto-format detection / fallbacks.
2015-02-08 20:22:09 -08:00
Paul
86dc43874c Loader: enabled parallel-by-default
- Minor cleanup to parallel: enabled by default, limit of 4 (hard-limit
  max 12)
2015-02-08 19:42:34 -08:00
Paul
8d61441844 Merge remote-tracking branch 'upstream/dev' into wip-loader
- Added changes/support for 'blob:' uri's in upstream, extended to 'data:'
- Added upstream documentation
- Some small fixes for XHD from upstream

Conflicts:
	src/loader/Loader.js
2015-02-08 19:42:22 -08:00
Mark Wecke
3a70677a05 use XDomainRequest in Loader.xhrLoad 2015-02-06 13:52:24 +01:00
Richard Davey
41d9a42a02 Merge pull request #1565 from abtion/master
Fix CORS loading BitmapFonts with IE9
2015-02-03 21:14:45 +00:00
jeppester
b29d2b8b23 Missing semicolons added 2015-01-24 19:48:52 +01:00
jeppester
242e3cc7c3 Indentation errors fixed 2015-01-24 19:43:49 +01:00
jeppester
d7cd76efe7 More cosmetic changes 2015-01-24 18:36:58 +01:00
jeppester
a722293786 Cosmetic pull request preparations 2015-01-24 18:31:02 +01:00
jeppester
067dcc4332 Fix CORS loading BitmapFonts with IE9 2015-01-23 17:17:50 +01:00
photonstorm
48f590c180 Added tools links. 2015-01-10 00:30:13 +00:00
photonstorm
801f387f75 Updated docs. 2015-01-08 01:28:38 +00:00
aressler38
c9984633b5 fixing documentation typo 2014-12-15 14:12:09 -08:00
aressler38
f1bdd174b2 [ISSUE 1458] Allow BLOB urls when loading audio files 2014-12-15 12:57:30 -08:00
Paul
e8da5e73f8 Loader - IE9 XDR used for all XHR when requested
Previously XHD was special-cased for 'json' file assets, but not all JSON
requests. Now it is used for all XHR transfers when `useXDomainRequest` is
enabled.

If XDR is used outside of IE 9 then a warning is emitted to the console.
The `useXDomainRequest` property has also been deprecated

This may address consistency issues as mentioned in
https://github.com/photonstorm/phaser/issues/1361
2014-11-28 04:21:17 -08:00
Paul
6aa5d9ba90 Loader - prep/cleanups
- Cleaned up abnormal case handling
- Disabled parallel loading by default; it can be enabled with
  `enableParallel`.
- Minor quibbles
- Removed unused `dataLoadError`
2014-11-23 11:02:24 -08:00
Paul
d8227cdceb Loader - documentation
Additional documentation updates.
2014-11-22 20:57:42 -08:00
Paul
1062b7330e Loader - fix/update for getAssetIndex
Loaded/loading assets are skipped if they have been superceded. This makes
the behavior consistent with respect to `addToFileList`, if the queue is
inspected or modified while loading.
2014-11-22 17:42:12 -08:00
Paul
d94321702a Loader - corrected tag error handling 2014-11-22 15:09:07 -08:00
Paul
609d77faba Loader - added means to add synchronization points
- Added `withSyncPoint` and `addSyncPoint` methods to allow explicit
  adding of synchronization points (synchronization points are explained
  in `withSyncPoint`.

- Changed the file/asset `sync` attribute to `syncPoint` to reflect
  terminology.
2014-11-22 14:42:27 -08:00
Paul
a6116b3832 Loader - fixes
- `onLoadComplete` will fire, even when loading is interrupted
- Context default to `this` on application.
2014-11-22 13:55:32 -08:00
Paul
9995edbe3f Loader - documentation
Updated/corrected various documentation.
2014-11-22 13:53:51 -08:00
Paul
7889739485 Loader - added enabledParallelDownloads
Added method to enable/disable parallel downloading in general.
2014-11-22 13:49:18 -08:00
Paul
1c000949cb Loader - transformUrl
Pulled out baseURL extension into method.
2014-11-22 13:46:14 -08:00
Paul
7116d0716d Loader - fast image-from-cache path
Employee the use of image.complete and a width/height check to detect when
it is available "from cache" and skip having to run though the
onload/onerror cases.
2014-11-21 22:38:32 -08:00
Paul
b00c4ad222 Loader - state bug fixes
More updates for https://github.com/photonstorm/phaser/issues/1330

Fixed several issues with state clearing (or lack of) resulting in
incorrect behavior if the loader was re-used.
2014-11-21 12:06:44 -08:00
Paul
4d16af0e0f Loader - parallel loading
Parallel loading is now supported, configured by
`loader.concurrentRequestCount`. Each file (a pack is now considered a
type of file) asset can be marked with `sync`, which is done for both pack
files and script files.

When a `sync` asset is encountered it must be loaded before any previous
resource any following resource is loaded (but it doesn't have to wait for
previous resources). Pack files are an exception in that they can download
(but are not processed) and they can fetch-around other `sync` assets.

Because of the concurrent nature there is no guarantee of the order in
which the individual events will file in relation to eachother, but local
ordering (e.g. onFileError always before onFileComplete) and overall
ordering (e.g. onLoadStart .. onFile? .. onLoadComplete) is preserved.

There is also increased error hardening and a few previous edge-cases
fixed (and likely a few bugs added).
2014-11-21 10:58:00 -08:00
Paul
930fc46649 Loader 2014-11-20 17:51:30 -08:00
photonstorm
7c9dfefc8f Loader resize handler. 2014-11-11 14:00:07 +00:00
photonstorm
da87c75e00 Loader.useXDomainRequest used to be enabled automatically for IE9 but is now always set to false. Please enable it only if you know your server set-up / CDN requires it, as some most certainly do, but we're finding them to be less and less used these days, so we feel it's safe to now disable this by default (#1248)
Loader.json was using the wrong context in IE9 with XDomainRequest calls (thanks @pnstickne #1258)
2014-10-27 12:31:55 +00:00
photonstorm
f0b7670506 Fixed an issue where audio files with query strings after them would fail the canPlayAudio checks (thanks Vithar) 2014-10-17 18:50:12 +01:00
spayton
eeeb6c3733 This stops Phaser progressing with file loads when an audio file file
failed in IE.

The problem was that it was calling fileComplete everytime instead of
setting it as a callback.
2014-10-02 16:48:12 +01:00
Richard Davey
01fd3df434 AudioSprite support is now built into the Loader and SoundManager. AudioSprites are like sprite sheets, only they consist of a selection of audio files and markers in a json configuration. You can find more details at https://github.com/tonistiigi/audiosprite (thanks @codevinsky #1205)
Fixed AudioSprite jsdoc, casing and formatting issues.
2014-09-23 22:15:09 +01:00
Jeremy Dowell
7cce1366f2 jshint cleanup 2014-09-23 10:25:49 -05:00
Jeremy Dowell
dd0d1729ad Phaser.AudioSprite
AudioSprite implementation for phaser.

Loads audio sprites based on the file format created with: https://github.com/tonistiigi/audiosprite
2014-09-23 10:21:29 -05:00
photonstorm
5980a3bdc6 Loader can now natively load XML files via load.xml. Once the XML file has loaded it is parsed via either DOMParser or ActiveXObject and then added to the Cache, where it can be retrieved via cache.getXML(key).
Cache now has support for XML files stored in their own container. You can add them with `cache.addXML` (typically this is done from the Loader automatically for you) and get them with `cache.getXML(key)`. There is also `cache.checkXMLKey(key)`, `cache.checkKeys` and `cache.removeXML(key)`.
2014-09-19 13:45:04 +01:00
photonstorm
20551f9129 Lots of jsdocs fixes ready for the new doc generator. 2014-09-16 17:35:08 +01:00
photonstorm
5e6c40e392 Fixed the jsdocs and crop method used on preloader sprites. 2014-09-09 12:48:38 +01:00
photonstorm
34426e7560 Loader.useXDomainRequest boolean automatically set to true if the browser is specifically detected as IE9, but you can still override this. IE10 will use xhr. 2014-08-28 05:24:57 +01:00
photonstorm
7bfa6fa9f2 Loader.useXDomainRequest boolean added. If true (the default is false) it will use XDomainRequest when loading JSON files instead of xhr. In rare IE edge-cases this may be required. You'll know if you need it (#1131 #1116) 2014-08-28 01:23:45 +01:00
photonstorm
122640e01b Phaser.Loader was incorrectly getting the responseText from _xhr instead of _ajax on IE9 xDomainRequests (thanks @lardratboy #1050) 2014-07-21 11:12:58 +01:00
mjeffery
fcc23ef5d2 fixed onPackComplete Signal 2014-07-13 15:38:13 -04:00
photonstorm
2293b64c94 Removing debug / console.log output. 2014-07-09 05:49:13 +01:00
photonstorm
3d80568e4c Loader.isLoading is set to false if the filelist size is zero. 2014-06-30 09:24:25 +01:00
photonstorm
5b5bdc80d9 Loader.pack will allow you to load in a new Phaser Asset Pack JSON file. An Asset Pack is a specially structured file that allows you to define all assets for your game in an external file. The file can be split into sections, allowing you to control loading a specific set of files from it. An example JSON file can be found in the resources folder and examples of use in the Phaser Examples repository.
Loader.totalQueuedPacks returns the number of Asset Packs in the queue.
Loader.totalLoadedPacks returns the number of Asset Packs already loaded.
2014-05-29 17:05:13 +01:00
photonstorm
4004cc92e3 First working pass at the Asset Pack Loader update. 2014-05-29 15:57:47 +01:00
photonstorm
066ab633a6 Loader.tilemap has renamed the mapURL parameter to url and mapData to data to keep it consistent with the other Loader methods.
Loader.physics has renamed the `dataURL` parameter to `url` and `jsonData` to `data` to keep it consistent with the other Loader methods.
2014-05-29 04:44:23 +01:00
photonstorm
7b876d5fc4 ScaleManager.bounds is a Rectangle object that holds the exact size of the game canvas, taking DOM offset and game scale into account.
Pointer.withinGame is now accurate based on game scale and updated as the Pointer moves.
Stage.bounds is now updated if the game canvas offset changes position. Note that it gives the un-scaled game dimensions.
2014-05-19 18:49:59 +01:00
photonstorm
410bc389ed Tidying up ready to move the plugins to their own repo. 2014-05-08 01:57:21 +01:00
photonstorm
75a848f0ef Loader now uses XDomainRequest in IE9 to load JSON data to help with CORS issues. 2014-04-29 14:41:26 +01:00
photonstorm
f33ba5dcc7 Timer has removed all use of local temporary vars in the core update loop.
Timer.clearPendingEvents will purge any events marked for deletion, this is run automatically at the start of the update loop.
The main Timer loop could incorrectly remove TimeEvent if a new one was added specifically during an event callback (thanks @garyyeap, fix #710)
2014-04-14 11:51:50 +01:00
jdowell
c9a67936d8 Added OnFileStart signal to loader
We've had a number of people in the channel ask for the ability to know when a file has started loading and to get the file names of said files.

Added the OnFileStart signal to do just that.
2014-04-11 13:17:26 -05:00
photonstorm
8fc2a465cd New Phaser package, small docs updates and preparing P2.World for new bounds code and v0.5.0 migration. 2014-04-08 03:31:13 +01:00
Georgios Kaleadis
0d77b36fc4 fixed p2 physics loading format and added the ability to extract a single fixture 2014-03-31 11:19:08 +03:00
Georgios Kaleadis
0a456d81c1 remove physics loader flags in p2 world, fix naming in loader 2014-03-31 10:46:17 +03:00
Christian Wesselhoeft
3b4c034452 Constrain Windows Scripting Host env to Loader.js 2014-03-25 14:56:05 -07:00
Christian Wesselhoeft
2ea76d1216 Fix jshint issues in src/loader 2014-03-25 14:56:05 -07:00
Christian Wesselhoeft
61f18b675c Trim trailing whitespace. 2014-03-25 14:56:04 -07:00
photonstorm
870d534e50 Fixed the Loader.preloadSprite crop effect on WebGL. 2014-03-18 16:23:44 +00:00
photonstorm
d75f6e163f Updated tilemap type to string (fixes #516) 2014-03-06 16:53:52 +00:00
photonstorm
10b3dbf74a Loader.replaceInFileList wouldn't over-write the previous entry correctly, which caused the Loader.image overwrite parameter to fail (thanks basoko, fixes #493) 2014-02-27 21:41:54 +00:00
photonstorm
5ab104ad4b Loader.script now has callback (and callbackContext) parameters, so you can specify a function to run once the JS has been injected into the body. 2014-02-26 02:45:06 +00:00
photonstorm
1448562abd Loader can now load JSON files specifically (game.load.json) and they are parsed and stored in the Game.Cache. Retrieve with game.cache.getJSON(key) (#329)
Also fixed UTF encoding on the animation file.
2014-02-21 18:48:06 +00:00
photonstorm
fb5920feec We now force IE11 into Canvas mode to avoid a Pixi bug with pre-multiplied alpha. Will remove once that is fixed, sorry, but it's better than no game at all, right? :(
Loader.setPreloadSprite() will now set sprite.visible = true once the crop has been applied. Should help avoid issues (#430) on super-slow connections.
2014-02-21 17:29:51 +00:00
photonstorm
e5a4620b87 Loader.physics now lets you load Lime + Corona JSON Physics data, which can be used with Body.loadPolygon and Body.loadData.
Cache.addPhysicsData and Cache.getPhysicsData allow you to store parsed JSON physics data in the cache, for sharing between Bodies.
2014-02-14 23:51:49 +00:00