Phaser 3 UI Components, built by Adobe Animate
What is it?
Build your UI in [Abode Animate](https://www.adobe.com/ru/products/animate.html),
export to JSON and bitmaps with provided
[JSFL script](https://github.com/xense/phaser-ui-comps/blob/master/jsfl/ExportToPhaser.jsfl)
, and you can forget about lots of positioning magic numbers in your code.
ComponentClip
build itself with provided JSON and atlases,
and UIComponentPrototype
Will help to control them, switch states,
listen to click, drag and other events.
In addition, UIComponentPrototype
and it's children classes don't mind,
if they have a real clip instance in current state or at all,
so nothing bad happens, for example, if you remove some button instance in your window in
Animate document and keep it's UIComponentPrototype
instance.
All bitmaps are exported to png files with the same folder structure
as in the Animate document library. Pack them to atlases using
TexturePacker or other tool you like.
Where and how to use?
Main framework repo
Docs, tutorials, examples
Live example
Issues, bugs, new components ideas
Animate document example
Export Animate document
To run JSFL script in Animate select `Commands > Run Command`,
navigate to the script, and click Open.
How to install?
To install the latest version from
npm
locally and save it in your package.json
file:
npm install --save phaser-ui-comps
Or you can download minified version from
https://github.com/xense/phaser-ui-comps/tree/master/dist
Or use jsdelivr cdn version
<script src="https://cdn.jsdelivr.net/npm/phaser-ui-comps@0.1.2/dist/phaser-ui-comps-with-underscore.min.js"></script>
Note!
PhaserComps uses underscore.js
There are two builds in the /dist folder,
one
with underscore included and
other
without it, so you need to load it before loading PhaserComps
Simple usage
<script src="path/to/scripts/phaser.js"></script>
<script src="path/to/scripts/phaser-ui-comps-with-underscore.min.js"></script>
const COMPONENT_CONFIG = "comp-config";
const TEXTURE_CONFIG = "my_texture";
var game = new Phaser.Game({
type: Phaser.AUTO,
parent: "phaser-example",
width: 800,
height: 600,
scene: {
preload: preload,
create: create
}
});
function preload() {
this.load.json(COMPONENT_CONFIG, "assets/my_component.json");
this.load.multiatlas(TEXTURE_CONFIG, "assets/atlases/my_atlas.json", "assets/atlases/");
}
function create() {
let clip = new PhaserComps.ComponentClip(
this,
this.cache.json.get(COMPONENT_CONFIG),
[ TEXTURE_CONFIG ]
);
let component = new PhaserComps.UIComponents.UIComponentPrototype();
component.appendClip(clip);
}