├── LICENSE
├── README.md
├── assets
├── arrow1.png
├── arrow2.png
├── blueBlock.png
├── box.png
├── cancel_paused.png
├── char1.png
├── char2.png
├── char3.png
├── char4.png
├── greenBlock.png
├── pinkBlock.png
├── purpleBlock.png
├── stripe.png
└── yellowBlock.png
├── examples
├── core.js
├── core_example1.js
├── example1.html
├── index.html
├── phase-slide.js
└── phaser.min.js
├── phase-slide.js
└── phase-slider.min.js
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Michael Dobekidis
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PhaseSlider
2 | A slider UI component for Phaser.io Javascript library
3 |
4 |
Initialize the slider in your preload function
5 |
6 | ```
7 | slider = new phaseSlider(game); //make sure to have slider publicly available
8 | ```
9 |
10 | And then simply construct your slider in the main function of your game or anywhere else
11 |
12 | ```
13 | slider.createSlider({
14 | customSliderBG: false,
15 | mode: "horizontal",
16 | sliderBGAlpha: 0.8,
17 | width: 500,
18 | height: 400,
19 | x: game.width / 2 - 500 / 2,
20 | y: game.height / 2 - 400 / 2,
21 | objects:[block1, block2, block3, block4, block5]
22 | });
23 | ```
24 |
25 |
26 |
27 | >View examples:
28 | Advanced example |
29 | Simple example
30 |
31 |
32 |
33 | General Options:
34 |
35 |
36 | mode: Type of movement for the slides (default horizontal, vertical-from-bottom, vertical-from-top)
37 | width: The width of the slider (default 500 pixels)
38 | height: The height of the slider (default 400 pixels)
39 | x The x position of the slider (default 0)
40 | y The y position of the slider (default 0)
41 | objects An array of sprites or groups that will be the slides (added as they appear on the array left->right)
42 | animationDuration: This sets the speed of the animation while sliding (default: 600ms)
43 | animationEasing: The easing applied to the sliding animation (default Phaser.Easing.Cubic.Out)
44 | sliderBG A single color to paint the background of the slider (default #35d2e0)
45 | customSliderBG A cache value to serve as a background for the slider (default false)
46 | sliderBGAlpha The alpha value for the slider background (default 1)
47 | customHandleNext A cache value for the the right arrow (if omited the liv has a build-in image to place)
48 | customHandlePrev A cache value for the the left arrow (if omited the liv has a build-in image to place)
49 | showHandles Whether or not to show arrows for slider navigation (default true)
50 | onNextCallback A callback function to be called when the slider navigates forward (default false)
51 | onPrevCallback A callback function to be called when the slider navigates backwards (default false)
52 | autoAnimate If we want the slider to aumatically rotate the slider (default false)
53 | animationDelay The delay between slide change when autoAnimate is set to true (default 2s)
54 | modal Add a black modal behind the slider (default false)
55 | modalAlpha The amount of alpha (opacity) for the slider modal (default 0.7)
56 | staticElements The static elements that need to be added but not move (default [])
57 | onPrePrevCallback The function to call `before` the slider moves to the `previous` slide (default false)
58 | onPreNextCallback The function to call `before` the slider moves to the `next` slide (default false)
59 | onAfterPrevCallback The function to call `after` the slider moves to the `previous` slide (default false)
60 | onAfterNextCallback The function to call `after` the slider moves to the `next` slide (default false)
61 |
62 |
63 | API Functions
64 |
65 |
66 | createSlider | Creates the slider object and the slides
67 | startSlider | Starts the automatic rotation of the slider if autoAnimate is set to true
68 | stopSlider | Stops the automatic rotation of slides
69 | moveToSlide | Navigate to specific slide index (args: index:Number, animated:Boolean)
70 | goToNext | Navigate to the next slide
71 | goToPrev | Navigate to the previous slide
72 | getCurrentIndex | Receive the current slide index
73 | hideSlider | Render the slider not visible (the slider will not be able to receive input events)
74 | showSlider | Render the slider visible
75 |
76 |
77 |
78 | *Note: When automatic rotation has started, navigating from the control arrows (next, prev) will stop the auto animation
79 |
80 |
81 |
82 |
83 | >Please let me know if you come across some bug or have something to contribute
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/assets/arrow1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/arrow1.png
--------------------------------------------------------------------------------
/assets/arrow2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/arrow2.png
--------------------------------------------------------------------------------
/assets/blueBlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/blueBlock.png
--------------------------------------------------------------------------------
/assets/box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/box.png
--------------------------------------------------------------------------------
/assets/cancel_paused.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/cancel_paused.png
--------------------------------------------------------------------------------
/assets/char1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/char1.png
--------------------------------------------------------------------------------
/assets/char2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/char2.png
--------------------------------------------------------------------------------
/assets/char3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/char3.png
--------------------------------------------------------------------------------
/assets/char4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/char4.png
--------------------------------------------------------------------------------
/assets/greenBlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/greenBlock.png
--------------------------------------------------------------------------------
/assets/pinkBlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/pinkBlock.png
--------------------------------------------------------------------------------
/assets/purpleBlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/purpleBlock.png
--------------------------------------------------------------------------------
/assets/stripe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/stripe.png
--------------------------------------------------------------------------------
/assets/yellowBlock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/assets/yellowBlock.png
--------------------------------------------------------------------------------
/examples/core.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netgfx/PhaseSlider/bb86f00c77316da49f8387be0bd1a30c6cf421c6/examples/core.js
--------------------------------------------------------------------------------
/examples/core_example1.js:
--------------------------------------------------------------------------------
1 | // Copyright © 2015 Michael Dobekidis
2 | // Licensed under the terms of the MIT License
3 | var reg = {};
4 | var GameState = function (game) {};
5 | var slider;
6 | // Load images and sounds
7 | GameState.prototype.preload = function () {
8 | this.load.image('bg', "http://i221.photobucket.com/albums/dd22/djmid71/bg1_zpsxrhh1f86.jpg");
9 | this.load.image("block1", "../assets/pinkBlock.png");
10 | this.load.image("block2", "../assets/blueBlock.png");
11 | this.load.image("block3", "../assets/greenBlock.png");
12 | this.load.image("block4", "../assets/yellowBlock.png");
13 | this.load.image("block5", "../assets/purpleBlock.png");
14 |
15 | this.load.image("arrow1", "../assets/arrow1.png");
16 | this.load.image("arrow2", "../assets/arrow2.png");
17 | this.load.image("accept", "../assets/stripe.png");
18 | this.load.image("box", "../assets/box.png");
19 | this.load.image("cancel", "../assets/cancel_paused.png");
20 | this.load.image("char1", "../assets/char1.png");
21 | this.load.image("char2", "../assets/char2.png");
22 | this.load.image("char3", "../assets/char3.png");
23 | this.load.image("char4", "../assets/char4.png");
24 | slider = new phaseSlider(game);
25 | };
26 |
27 | // Setup the example
28 | GameState.prototype.create = function () {
29 | // Set stage background to something sky colored
30 | this.game.stage.backgroundColor = 0xcdcdcd;
31 | this.add.image(0, 0, "bg");
32 | var char1 = game.add.image(0,0,"char1");
33 | var char2 = game.add.image(0,0,"char2");
34 | var char3 = game.add.image(0,0,"char3");
35 | var char4 = game.add.image(0,0,"char4");
36 |
37 | var group1 = game.add.group();
38 | group1.width = 500;
39 | group1.height = 400;
40 | char1.scale.setTo(0.5, 0.5);
41 | char1.x = 500/2 - char1.width/2;
42 | char1.y = 100;
43 |
44 | //////////
45 | var group2 = game.add.group();
46 | group2.width = 500;
47 | group2.height = 400;
48 | char2.scale.setTo(0.5, 0.5);
49 | char2.x = 500/2 - char2.width/2;
50 | char2.y = 100;
51 | ///////////
52 | var group3 = game.add.group();
53 | group3.width = 500;
54 | group3.height = 400;
55 | char3.scale.setTo(0.5, 0.5);
56 | char3.x = 500/2 - char3.width/2;
57 | char3.y = 100;
58 | ////////////
59 | var group4 = game.add.group();
60 | group4.width = 500;
61 | group4.height = 400;
62 | char4.scale.setTo(0.5, 0.5);
63 | char4.x = 500/2 - char4.width/2;
64 | char4.y = 100;
65 |
66 |
67 |
68 | var block1 = game.add.image(0,0,"block1");
69 | var block2 = game.add.image(0,0,"block1");
70 | var block3 = game.add.image(0,0,"block1");
71 | var block4 = game.add.image(0,0,"block1");
72 |
73 | group1.add(block1);
74 | group1.add(char1);
75 | /////
76 | group2.add(block2);
77 | group2.add(char2);
78 | /////
79 | group3.add(block3);
80 | group3.add(char3);
81 | /////
82 | group4.add(block4);
83 | group4.add(char4);
84 |
85 |
86 | slider.createSlider({
87 | customSliderBG: false,
88 | sliderBGAlpha: 0.8,
89 | x: game.width / 2 - 500 / 2,
90 | y: game.height / 2 - 400 / 2,
91 | customHandleNext: "arrow2",
92 | customHandlePrev: "arrow1",
93 | objects:[group1, group2, group3, group4],
94 | onNextCallback: function() {
95 | window.console.log("next");
96 | },
97 | onPrevCallback: function(){
98 | window.console.log("prev")
99 | }
100 | });
101 |
102 | var btn = game.add.image((game.width/2 - 80/2), (game.height / 2 - 80 / 2)+180, "accept");
103 | btn.inputEnabled = true;
104 | btn.events.onInputDown.add(function (e, pointer) {
105 | var index = slider.getCurrentIndex();
106 | var text = game.add.text(0,0,"You selected -> ",{
107 | fontSize: 22,
108 | fill: "#1e1e1e"
109 | });
110 | text.updateText();
111 |
112 | text.x = game.width/2 - text.width/2;
113 | text.y = 80;
114 |
115 | var img = game.add.image(text.x+text.width+10, text.y-30, "char"+(index+1));
116 | img.scale.setTo(0.2, 0.2);
117 |
118 | },this);
119 | };
120 |
121 |
122 |
123 | // The update() method is called every frame
124 | GameState.prototype.update = function () {
125 |
126 | };
127 |
128 | var game = new Phaser.Game(1024, 691, Phaser.CANVAS, 'game');
129 | game.state.add('game', GameState, true);
--------------------------------------------------------------------------------
/examples/example1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CodePen - Phase-Slide
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/examples/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CodePen - Phase-Slide
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/examples/phase-slide.js:
--------------------------------------------------------------------------------
1 | /**
2 | * PHASE-SLIDE IS A UI SLIDER FOR PHASER.IO LIBRARY
3 | *
4 | * COPYWRITE-2015
5 | * AUTHOR: MICHAEL DOBEKIDIS (NETGFX.COM)
6 | *
7 | */
8 |
9 | var phaseSlider = phaseSlider || {};
10 |
11 |
12 | phaseSlider = function (game) {
13 |
14 | var _this = this;
15 |
16 | game.phaseSlider = _this;
17 | _this.game = game;
18 | _this.locked = false;
19 | _this.slideIndex = 0;
20 | _this.slider_timer = null;
21 | _this.tweenObj = {};
22 |
23 | var chevron_left = "data:image/png;base64,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";
24 |
25 | var chevron_right = "data:image/png;base64,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";
26 |
27 | game.load.image("slider_chevron_left", chevron_left);
28 | game.load.image("slider_chevron_right", chevron_right);
29 |
30 | _this.goToNext = function () {
31 | _this.locked = true;
32 | if (_this.options._mode === "horizontal") {
33 | var finalX = _this.sliderMainGroup.x + (_this.options._width * -1);
34 |
35 | if ((_this.slideIndex >= _this.options._objects.length - 1) && _this.options.autoAnimate === false) {
36 | _this.stopSlider();
37 | return false;
38 | }
39 |
40 | // animate loop
41 | if (_this.options.autoAnimate === true) {
42 | if (_this.slideIndex >= _this.options._objects.length - 1) {
43 | _this.slideIndex = 0;
44 | _this.sliderMainGroup.x = _this.options._x;
45 | this.locked = false;
46 | return true;
47 | }
48 | }
49 |
50 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
51 | x: finalX
52 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
53 | _this.tweenObj.onComplete.add(function () {
54 | this.locked = false;
55 | this.slideIndex += 1;
56 | if (_this.options.autoAnimate === false && this.slideIndex >= _this.options._objects.length - 1) {
57 | if (_this.options._showHandles === true) {
58 | this.sliderControlsGroup.children[0].alpha = 0;
59 | }
60 | }
61 |
62 | // enable prev
63 | if (_this.options._showHandles === true) {
64 | this.sliderControlsGroup.children[1].alpha = 1;
65 | }
66 | }, _this);
67 | } else {
68 |
69 | var finalY;
70 | if (_this.options._mode === "vertical-from-top") {
71 | finalY = _this.sliderMainGroup.y + (_this.options._height);
72 | } else if (_this.options._mode === "vertical-from-bottom") {
73 | finalY = _this.sliderMainGroup.y + (_this.options._height * -1);
74 | }
75 |
76 | if ((_this.slideIndex >= _this.options._objects.length - 1) && _this.options.autoAnimate === false) {
77 | _this.stopSlider();
78 | return false;
79 | }
80 |
81 | // animate loop
82 | if (_this.options.autoAnimate === true) {
83 | if (_this.slideIndex >= _this.options._objects.length - 1) {
84 | _this.slideIndex = 0;
85 | _this.sliderMainGroup.y = _this.options._y;
86 | this.locked = false;
87 | return true;
88 | }
89 | }
90 |
91 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
92 | y: finalY
93 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
94 | _this.tweenObj.onComplete.add(function () {
95 | this.locked = false;
96 | this.slideIndex += 1;
97 |
98 | if (_this.options.autoAnimate === false && this.slideIndex >= _this.options._objects.length - 1) {
99 | if (_this.options._showHandles === true) {
100 | this.sliderControlsGroup.children[0].alpha = 0;
101 | }
102 | }
103 |
104 | // enable prev
105 | if (_this.options._showHandles === true) {
106 | this.sliderControlsGroup.children[1].alpha = 1;
107 | }
108 | }, _this);
109 | }
110 | };
111 | _this.goToPrev = function () {
112 | _this.locked = true;
113 | if (_this.options._mode === "horizontal") {
114 | var finalX = _this.sliderMainGroup.x + (_this.options._width);
115 |
116 | if (_this.slideIndex <= 0 && _this.options.autoAnimate === false) {
117 | _this.stopSlider();
118 | return false;
119 | }
120 |
121 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
122 | x: finalX
123 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
124 | _this.tweenObj.onComplete.add(function () {
125 | this.locked = false;
126 | this.slideIndex -= 1;
127 |
128 | if (this.slideIndex < 0) {
129 | this.slideIndex = 0;
130 | }
131 |
132 | if (_this.options.infiniteLoop === false && this.slideIndex <= 0) {
133 | // enable prev
134 | if (_this.options._showHandles === true) {
135 | this.sliderControlsGroup.children[1].alpha = 0;
136 | }
137 | }
138 |
139 | // enable next
140 | if (_this.options._showHandles === true) {
141 | this.sliderControlsGroup.children[0].alpha = 1;
142 | }
143 |
144 | }, _this);
145 | } else {
146 | var finalY;
147 | if (_this.options._mode === "vertical-from-top") {
148 | finalY = _this.sliderMainGroup.y + (_this.options._height * -1);
149 | } else if (_this.options._mode === "vertical-from-bottom") {
150 | finalY = _this.sliderMainGroup.y + (_this.options._height);
151 | }
152 | if (_this.slideIndex <= 0 && _this.options.autoAnimate === false) {
153 | _this.stopSlider();
154 | return false;
155 | }
156 |
157 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
158 | y: finalY
159 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
160 | _this.tweenObj.onComplete.add(function () {
161 | this.locked = false;
162 | this.slideIndex -= 1;
163 |
164 | if (this.slideIndex < 0) {
165 | this.slideIndex = 0;
166 | }
167 |
168 | if (_this.options.autoAnimate === false && this.slideIndex <= 0) {
169 | if (_this.options._showHandles === true) {
170 | this.sliderControlsGroup.children[1].alpha = 0;
171 | }
172 | }
173 |
174 | // enable prev
175 | if (_this.options._showHandles === true) {
176 | this.sliderControlsGroup.children[0].alpha = 1;
177 | }
178 | }, _this);
179 | }
180 | };
181 |
182 | _this.startSlider = function () {
183 | var _timer = game.time.create(false);
184 | _timer.start();
185 | _timer.loop(Phaser.Timer.SECOND * _this.options.animationDelay, _this.goToNext, _this);
186 | _this.slider_timer = _timer;
187 | };
188 | _this.stopSlider = function () {
189 | if (_this.slider_timer !== null) {
190 | _this.slider_timer.stop(true);
191 | _this.slider_timer = null;
192 | } else {
193 | return false;
194 | }
195 | };
196 |
197 | _this.moveToSlide = function (index, animate) {
198 | var finalX;
199 | if (index >= _this.options._objects.length) {
200 | return false;
201 | }
202 | if (_this.options._mode === "horizontal") {
203 | finalX = (_this.options._x - (_this.options._width * (index)));
204 | if (animate === true) {
205 |
206 | var tweenObj = game.add.tween(_this.sliderMainGroup).to({
207 | x: finalX
208 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
209 | } else {
210 | _this.sliderMainGroup.x = finalX;
211 | }
212 | } else if (_this.options._mode === "vertical-from-top") {
213 | //TODO: ADD VERTICAL-FROM-TOP
214 | } else if (_this.options._mode === "vertical-from-bottom") {
215 | //TODO: ADD VERTICAL-FROM-BOTTOM
216 | }
217 | };
218 | /////////////////////////////////////////////////////////////////////////////////////////
219 | ///
220 | _this.onDragStart = function (sprite, pointer, dragX, dragY) {
221 | _this.dragInit = pointer.x;
222 | _this.lastDrag = pointer.x;
223 | };
224 |
225 | _this.onDragStop = function (e) {
226 |
227 | };
228 | _this.dragUpdate = function (sprite, pointer, dragX, dragY) {
229 |
230 | var finalX = dragX; // - _this.options._x;
231 | // going left
232 | if (pointer.x < _this.dragInit) {
233 | var diff = Math.abs(pointer.x) - Math.abs(_this.lastDrag);
234 | // going right
235 | if (diff < 0) {
236 | finalX = _this.sliderMainGroup.x - 1;
237 | } else {
238 | finalX = _this.sliderMainGroup.x + 1;
239 | }
240 | } else {
241 | var diff = Math.abs(pointer.x) - Math.abs(_this.lastDrag);
242 | // going right
243 | if (diff < 0) {
244 | finalX = _this.sliderMainGroup.x - 1;
245 | } else {
246 | finalX = _this.sliderMainGroup.x + 1;
247 | }
248 | }
249 |
250 | if (finalX <= (_this.options._x + (_this.options._width * (_this.options._objects.length - 2))) * -1) {
251 | finalX = (_this.options._x + (_this.options._width * (_this.options._objects.length - 2))) * -1;
252 | } else if (finalX >= _this.options._x) {
253 | finalX = _this.options._x;
254 | }
255 | _this.sliderMainGroup.x = finalX;
256 | _this.lastDrag = pointer.x;
257 | };
258 |
259 | return {
260 | createSlider: function (options) {
261 | // initialize index
262 | _this.slideIndex = 0;
263 |
264 | _this.options = {
265 | _mode: options.mode || "horizontal", // horizontal, vertical-from-top, vertical-from-bottom
266 | _width: options.width || 500,
267 | _height: options.height || 400,
268 | _animationEffect: options.animationEffect || "slide", // slide, fade, cover
269 | autoAnimate: options.autoAnimate || false,
270 | infiniteLoop: options.infiniteLoop || false,
271 | animationDelay: options.animationDelay || 2,
272 | animationDuration: options.animationDuration || 600,
273 | animationEasing: options.animationEasing || Phaser.Easing.Cubic.Out, //Phaser.Easing.Linear.None,
274 | _x: options.x || 0,
275 | _y: options.y || 0,
276 | _objects: options.objects || [], // can take: single-sprite, single-image, group
277 | sliderBG: options.sliderBG || 0x35d2e0,
278 | customSliderBG: options.customSliderBG || false,
279 | sliderBGAlpha: options.sliderBGAlpha || 1,
280 | _customHandleNext: options.customHandleNext || "",
281 | _customHandlePrev: options.customHandlePrev || "",
282 | _showHandles: options.showHandles == undefined ? true : options.showHandles,
283 | _onNextCallback: options.onNextCallback || false,
284 | _onPrevCallback: options.onPrevCallback || false,
285 | _addModal: options.modal || false,
286 | _modalAlpha: options.modalAlpha || 0.7,
287 | _staticElements: options.staticElements || []
288 | };
289 |
290 | //////////////////////////////////////////////////////////////////////////////////////////////
291 |
292 | var bgRect;
293 | _this._modal = {};
294 | if(_this.options._addModal === true) {
295 | _this._modal = game.add.graphics(game.width, game.height);
296 | _this._modal.beginFill(0x000000, _this.options._modalAlpha);
297 | _this._modal.x = 0;
298 | _this._modal.y = 0;
299 | _this._modal.inputEnabled = true;
300 | _this._modal.drawRect(0, 0, _this.game.width, _this.game.height);
301 | }
302 | else {
303 | _this._modal = false;
304 | }
305 |
306 | //////// OBJECTS GROUP
307 | ///
308 | _this.sliderBGGroup = _this.game.add.group();
309 | _this.sliderMainGroup = _this.game.add.group();
310 | _this.sliderBGGroup.width = _this.options._width;
311 | _this.sliderMainGroup.width = _this.options._width;
312 | if (_this.options._mode === "horizontal") {
313 | _this.sliderMainGroup.width = _this.options._width * _this.options._objects.length;
314 |
315 | // if used as a placeholder don't make the width = 0
316 | if (_this.options._objects.length === 0) {
317 | _this.sliderMainGroup.width = _this.options._width;
318 | }
319 | } else {
320 | _this.sliderMainGroup.height = _this.options._height * _this.options._objects.length;
321 |
322 | // if used as a placeholder don't make the height = 0
323 | if (_this.options._objects.length === 0) {
324 | _this.sliderMainGroup.height = _this.options._height;
325 | }
326 | }
327 | _this.sliderMainGroup.height = _this.options._height;
328 | _this.sliderMainGroup.x = _this.options._x;
329 | _this.sliderMainGroup.y = _this.options._y;
330 | //
331 | _this.sliderBGGroup.height = _this.options._height;
332 | _this.sliderBGGroup.x = _this.options._x;
333 | _this.sliderBGGroup.y = _this.options._y;
334 |
335 | /// DRAG for horizontal
336 | /*var draggableSprite = _this.game.add.sprite(_this.options._x, _this.options._y);
337 | draggableSprite.width = (_this.options._objects.length+5) * _this.options._width;
338 | draggableSprite.height = _this.options._height;
339 | draggableSprite.y = _this.options._y;
340 | draggableSprite.inputEnabled = true;
341 | draggableSprite.input.enableDrag();
342 | draggableSprite.input.allowVerticalDrag = false;
343 | // draggableSprite.input.enableSnap(_this.options._width, _this.options._height, true, true);
344 | draggableSprite.events.onDragStart.add(_this.onDragStart, _this);
345 | draggableSprite.events.onDragStop.add(_this.onDragStop, _this);
346 | draggableSprite.events.onDragUpdate.add(_this.dragUpdate, _this);
347 | _this._draggableSprite = draggableSprite;*/
348 |
349 | /////// END OF OBJECTS GROUP
350 |
351 | //////// CONTROLS GROUP
352 | _this.sliderControlsGroup = _this.game.add.group();
353 | _this.sliderControlsGroup.width = _this.options._width;
354 | _this.sliderControlsGroup.height = _this.options._height;
355 | _this.sliderControlsGroup.x = _this.options._x;
356 | _this.sliderControlsGroup.y = _this.options._y;
357 |
358 | //////// END OF CONTROLS GROUP
359 |
360 | //MASK
361 | var maskGraphics = game.add.graphics(0, 0);
362 | maskGraphics.beginFill(0xffffff);
363 | maskGraphics.drawRect(_this.options._x, _this.options._y, _this.options._width, _this.options._height);
364 | _this.sliderMainGroup.mask = maskGraphics;
365 |
366 | /// create main bg
367 | if (_this.options.customSliderBG === false) {
368 | bgRect = game.add.graphics(_this.options._width, _this.options._height);
369 | bgRect.beginFill(_this.options.sliderBG, _this.options.sliderBGAlpha);
370 | bgRect.x = _this.options._x;
371 | bgRect.y = _this.options._y;
372 |
373 | bgRect.drawRect(0, 0, _this.options._width, _this.options._height);
374 | _this.sliderMainGroup.add(bgRect);
375 | } else {
376 | _this.sliderBGGroup.add(_this.options.customSliderBG);
377 | }
378 | // add controls
379 | if (_this.options._showHandles === true) {
380 |
381 | var chevronRight;
382 | var chevronLeft;
383 |
384 | if (_this.options._customHandleNext === "") {
385 | chevronRight = game.add.image(0, 0, "slider_chevron_right");
386 | chevronRight.scale.setTo(0.6, 0.6);
387 | } else {
388 | chevronRight = game.add.image(0, 0, _this.options._customHandleNext);
389 | }
390 | chevronRight.x = _this.options._width - (chevronRight.width + 10); //_this.options._x+_this.options._width - (chevronRight.width+10);
391 | chevronRight.y = (_this.options._height / 2) - chevronRight.height / 2;
392 | chevronRight.inputEnabled = true;
393 | chevronRight.events.onInputDown.add(function (e, pointer) {
394 | if (_this.options._onNextCallback) {
395 | _this.options._onNextCallback();
396 | }
397 |
398 | if (_this.tweenObj.isRunning !== true) {
399 | _this.stopSlider();
400 | _this.goToNext();
401 | }
402 |
403 | }, _this);
404 |
405 |
406 | if (_this.options._customHandlePrev === "") {
407 | chevronLeft = game.add.image(0, 0, "slider_chevron_left");
408 | chevronLeft.scale.setTo(0.6, 0.6);
409 | } else {
410 | chevronLeft = game.add.image(0, 0, _this.options._customHandlePrev);
411 | }
412 | chevronLeft.x = 10;
413 | chevronLeft.y = (_this.options._height / 2) - chevronLeft.height / 2;
414 | chevronLeft.inputEnabled = true;
415 | chevronLeft.events.onInputDown.add(function (e, pointer) {
416 | if (_this.options._onPrevCallback) {
417 | _this.options._onPrevCallback();
418 | }
419 |
420 | if (_this.tweenObj.isRunning !== true) {
421 | _this.stopSlider();
422 | _this.goToPrev();
423 | }
424 |
425 | }, _this);
426 |
427 |
428 |
429 | // if not infinite initialy hide it
430 | if (_this.options.infiniteLoop === false) {
431 | chevronLeft.alpha = 0;
432 | }
433 | }
434 | else {
435 |
436 | }
437 |
438 |
439 | // ADDING THE BLOCKS
440 | if (_this.options._objects.length > 0) {
441 | var objArr = _this.options._objects.slice(0);
442 | var length = Number(objArr.length);
443 | for (var i = 0; i < length; i++) {
444 | var x;
445 | var y;
446 | // mode
447 | if (_this.options._mode === "horizontal") {
448 | objArr[i].x = (_this.options._width * i);
449 | } else if (_this.options._mode === "vertical-from-top") {
450 | objArr[i].y = (_this.options._height * i) * -1;
451 |
452 | } else if (_this.options._mode === "vertical-from-bottom") {
453 | objArr[i].y = (_this.options._height * i);
454 | }
455 | _this.sliderMainGroup.add(objArr[i]);
456 | }
457 | _this.options._objects = _this.sliderMainGroup.children;
458 | //window.console.log(_this.options._objects.length, _this.options._objects, _this.sliderMainGroup.children.length);
459 | }
460 |
461 |
462 | // ADDING STATIC ELEMENTS
463 | if(_this.options._staticElements.length > 0) {
464 | for (var i = 0;i<_this.options._staticElements.length;i++ ) {
465 | game.world.bringToTop(_this.options._staticElements[i]);
466 | _this.sliderBGGroup.add(_this.options._staticElements[i]);
467 | }
468 | }
469 |
470 |
471 | // move the chevrons to top
472 | if (_this.options._showHandles === true) {
473 | _this.sliderControlsGroup.add(chevronRight);
474 | _this.sliderControlsGroup.add(chevronLeft);
475 | }
476 |
477 | //////////// AUTO ANIMATE
478 | if (_this.options.autoAnimate === true) {
479 | _this.startSlider();
480 | }
481 |
482 | },
483 | startSlider: function () {
484 | _this.startSlider();
485 | },
486 | stopSlider: function () {
487 | _this.startSlider();
488 | },
489 | moveToSlide: function (index, animate) {
490 |
491 | _this.moveToSlide(index, animate);
492 | },
493 | goToNext: function () {
494 | _this.goToNext();
495 | },
496 | goToPrev: function () {
497 | _this.goToPrev();
498 | },
499 | getCurrentIndex: function () {
500 | return _this.slideIndex;
501 | },
502 | refreshSlider: function() {
503 |
504 | },
505 | removeItemAt: function(index) {
506 | _this.sliderMainGroup.removeChildAt(index);
507 | _this.options._objects = _this.sliderMainGroup.children;
508 | },
509 | hideSlider: function() {
510 | _this.sliderMainGroup.visible = false;
511 | _this.sliderControlsGroup.visible = false;
512 | _this.sliderBGGroup.visible = false;
513 | if(_this._modal) {
514 | _this._modal.visible = false;
515 | }
516 | },
517 | showSlider: function() {
518 | _this.sliderMainGroup.visible = true;
519 | _this.sliderControlsGroup.visible = true;
520 | _this.sliderBGGroup.visible = true;
521 | if(_this._modal) {
522 | _this._modal.visible = true;
523 | }
524 | }
525 | };
526 | };
527 |
--------------------------------------------------------------------------------
/phase-slide.js:
--------------------------------------------------------------------------------
1 | /**
2 | * PHASE-SLIDE IS A UI SLIDER FOR PHASER.IO LIBRARY
3 | *
4 | * COPYWRITE-2015
5 | * AUTHOR: MICHAEL DOBEKIDIS (NETGFX.COM)
6 | *
7 | */
8 |
9 | var phaseSlider = phaseSlider || {};
10 |
11 |
12 | phaseSlider = function(game) {
13 |
14 | var _this = this;
15 |
16 | game.phaseSlider = _this;
17 | _this.game = game;
18 | _this.locked = false;
19 | _this.slideIndex = 0;
20 | _this.slider_timer = null;
21 | _this.tweenObj = {};
22 |
23 | var chevron_left = "data:image/png;base64,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";
24 |
25 | var chevron_right = "data:image/png;base64,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";
26 |
27 | game.load.image("slider_chevron_left", chevron_left);
28 | game.load.image("slider_chevron_right", chevron_right);
29 |
30 | _this.goToNext = function() {
31 |
32 | if (_this.locked === true) {
33 | return false;
34 | }
35 |
36 | if (_this.options._mode === "horizontal") {
37 | var finalX = _this.sliderMainGroup.x + (_this.options._width * -1);
38 |
39 | if ((_this.slideIndex >= _this.options._objects.length - 1) && _this.options.autoAnimate === false) {
40 | _this.stopSlider();
41 | return false;
42 | }
43 |
44 | // animate loop
45 | if (_this.options.autoAnimate === true) {
46 | if (_this.slideIndex >= _this.options._objects.length - 1) {
47 | _this.slideIndex = 0;
48 | _this.sliderMainGroup.x = _this.options._x;
49 | this.locked = false;
50 | return true;
51 | }
52 | }
53 | _this.locked = true;
54 |
55 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
56 | x: finalX
57 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
58 | _this.tweenObj.onComplete.add(function() {
59 | this.locked = false;
60 | this.slideIndex += 1;
61 | if (_this.options.autoAnimate === false && this.slideIndex >= _this.options._objects.length - 1) {
62 | if (_this.options._showHandles === true) {
63 | this.sliderControlsGroup.children[0].alpha = 0;
64 | }
65 | }
66 |
67 | // enable prev
68 | if (_this.options._showHandles === true) {
69 | this.sliderControlsGroup.children[1].alpha = 1;
70 | }
71 | }, _this);
72 | } else {
73 |
74 | var finalY;
75 | if (_this.options._mode === "vertical-from-top") {
76 | finalY = _this.sliderMainGroup.y + (_this.options._height);
77 | } else if (_this.options._mode === "vertical-from-bottom") {
78 | finalY = _this.sliderMainGroup.y + (_this.options._height * -1);
79 | }
80 |
81 | if ((_this.slideIndex >= _this.options._objects.length - 1) && _this.options.autoAnimate === false) {
82 | _this.stopSlider();
83 | return false;
84 | }
85 |
86 | // animate loop
87 | if (_this.options.autoAnimate === true) {
88 | if (_this.slideIndex >= _this.options._objects.length - 1) {
89 | _this.slideIndex = 0;
90 | _this.sliderMainGroup.y = _this.options._y;
91 | this.locked = false;
92 | return true;
93 | }
94 | }
95 |
96 | _this.locked = true;
97 |
98 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
99 | y: finalY
100 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
101 | _this.tweenObj.onComplete.add(function() {
102 | this.locked = false;
103 | this.slideIndex += 1;
104 |
105 | if (_this.options.autoAnimate === false && this.slideIndex >= _this.options._objects.length - 1) {
106 | if (_this.options._showHandles === true) {
107 | this.sliderControlsGroup.children[0].alpha = 0;
108 | }
109 | }
110 |
111 | // enable prev
112 | if (_this.options._showHandles === true) {
113 | this.sliderControlsGroup.children[1].alpha = 1;
114 | }
115 | }, _this);
116 | }
117 | };
118 | _this.goToPrev = function() {
119 |
120 | if (_this.locked === true) {
121 | return false;
122 | }
123 |
124 | if (_this.options._mode === "horizontal") {
125 | var finalX = _this.sliderMainGroup.x + (_this.options._width);
126 |
127 | if (_this.slideIndex <= 0 && _this.options.autoAnimate === false) {
128 | _this.stopSlider();
129 | return false;
130 | }
131 |
132 | _this.locked = true;
133 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
134 | x: finalX
135 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
136 | _this.tweenObj.onComplete.add(function() {
137 | this.locked = false;
138 | this.slideIndex -= 1;
139 |
140 | if (this.slideIndex < 0) {
141 | this.slideIndex = 0;
142 | }
143 |
144 | if (_this.options.infiniteLoop === false && this.slideIndex <= 0) {
145 | // enable prev
146 | if (_this.options._showHandles === true) {
147 | this.sliderControlsGroup.children[1].alpha = 0;
148 | }
149 | }
150 |
151 | // enable next
152 | if (_this.options._showHandles === true) {
153 | this.sliderControlsGroup.children[0].alpha = 1;
154 | }
155 |
156 | }, _this);
157 | } else {
158 | var finalY;
159 | if (_this.options._mode === "vertical-from-top") {
160 | finalY = _this.sliderMainGroup.y + (_this.options._height * -1);
161 | } else if (_this.options._mode === "vertical-from-bottom") {
162 | finalY = _this.sliderMainGroup.y + (_this.options._height);
163 | }
164 | if (_this.slideIndex <= 0 && _this.options.autoAnimate === false) {
165 | _this.stopSlider();
166 | return false;
167 | }
168 | _this.locked = true;
169 | _this.tweenObj = game.add.tween(_this.sliderMainGroup).to({
170 | y: finalY
171 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
172 | _this.tweenObj.onComplete.add(function() {
173 | this.locked = false;
174 | this.slideIndex -= 1;
175 |
176 | if (this.slideIndex < 0) {
177 | this.slideIndex = 0;
178 | }
179 |
180 | if (_this.options.autoAnimate === false && this.slideIndex <= 0) {
181 | if (_this.options._showHandles === true) {
182 | this.sliderControlsGroup.children[1].alpha = 0;
183 | }
184 | }
185 |
186 | // enable prev
187 | if (_this.options._showHandles === true) {
188 | this.sliderControlsGroup.children[0].alpha = 1;
189 | }
190 | }, _this);
191 | }
192 | };
193 |
194 | _this.startSlider = function() {
195 | var _timer = game.time.create(false);
196 | _timer.start();
197 | _timer.loop(Phaser.Timer.SECOND * _this.options.animationDelay, _this.goToNext, _this);
198 | _this.slider_timer = _timer;
199 | };
200 | _this.stopSlider = function() {
201 | if (_this.slider_timer !== null) {
202 | _this.slider_timer.stop(true);
203 | _this.slider_timer = null;
204 | } else {
205 | return false;
206 | }
207 | };
208 |
209 | _this.moveToSlide = function(index, animate) {
210 | var finalX;
211 | if (index >= _this.options._objects.length) {
212 | return false;
213 | }
214 | if (_this.options._mode === "horizontal") {
215 | finalX = (_this.options._x - (_this.options._width * (index)));
216 | if (animate === true) {
217 |
218 | var tweenObj = game.add.tween(_this.sliderMainGroup).to({
219 | x: finalX
220 | }, _this.options.animationDuration, _this.options.animationEasing, true, 0, 0, false);
221 | } else {
222 | _this.sliderMainGroup.x = finalX;
223 | }
224 | } else if (_this.options._mode === "vertical-from-top") {
225 | //TODO: ADD VERTICAL-FROM-TOP
226 | } else if (_this.options._mode === "vertical-from-bottom") {
227 | //TODO: ADD VERTICAL-FROM-BOTTOM
228 | }
229 | };
230 | /////////////////////////////////////////////////////////////////////////////////////////
231 | ///
232 | _this.onDragStart = function(sprite, pointer, dragX, dragY) {
233 | _this.dragInit = pointer.x;
234 | _this.lastDrag = pointer.x;
235 | };
236 |
237 | _this.onDragStop = function(e) {
238 |
239 | };
240 | _this.dragUpdate = function(sprite, pointer, dragX, dragY) {
241 |
242 | var finalX = dragX; // - _this.options._x;
243 | // going left
244 | if (pointer.x < _this.dragInit) {
245 | var diff = Math.abs(pointer.x) - Math.abs(_this.lastDrag);
246 | // going right
247 | if (diff < 0) {
248 | finalX = _this.sliderMainGroup.x - 1;
249 | } else {
250 | finalX = _this.sliderMainGroup.x + 1;
251 | }
252 | } else {
253 | var diff = Math.abs(pointer.x) - Math.abs(_this.lastDrag);
254 | // going right
255 | if (diff < 0) {
256 | finalX = _this.sliderMainGroup.x - 1;
257 | } else {
258 | finalX = _this.sliderMainGroup.x + 1;
259 | }
260 | }
261 |
262 | if (finalX <= (_this.options._x + (_this.options._width * (_this.options._objects.length - 2))) * -1) {
263 | finalX = (_this.options._x + (_this.options._width * (_this.options._objects.length - 2))) * -1;
264 | } else if (finalX >= _this.options._x) {
265 | finalX = _this.options._x;
266 | }
267 | _this.sliderMainGroup.x = finalX;
268 | _this.lastDrag = pointer.x;
269 | };
270 |
271 | return {
272 | createSlider: function(options) {
273 | // initialize index
274 | _this.slideIndex = 0;
275 |
276 | _this.options = {
277 | _mode: options.mode || "horizontal", // horizontal, vertical-from-top, vertical-from-bottom
278 | _width: options.width || 500,
279 | _height: options.height || 400,
280 | _animationEffect: options.animationEffect || "slide", // slide, fade, cover
281 | autoAnimate: options.autoAnimate || false,
282 | infiniteLoop: options.infiniteLoop || false,
283 | animationDelay: options.animationDelay || 2,
284 | animationDuration: options.animationDuration || 600,
285 | animationEasing: options.animationEasing || Phaser.Easing.Cubic.Out, //Phaser.Easing.Linear.None,
286 | _x: options.x || 0,
287 | _y: options.y || 0,
288 | _objects: options.objects || [], // can take: single-sprite, single-image, group
289 | sliderBG: options.sliderBG || 0x35d2e0,
290 | customSliderBG: options.customSliderBG || false,
291 | sliderBGAlpha: options.sliderBGAlpha || 1,
292 | _customHandleNext: options.customHandleNext || "",
293 | _customHandlePrev: options.customHandlePrev || "",
294 | _showHandles: options.showHandles == undefined ? true : options.showHandles,
295 | _onPreNextCallback: options.onPreNextCallback || false,
296 | _onPrePrevCallback: options.onPrePrevCallback || false,
297 | _onAfterNextCallback: options.onAfterNextCallback || false,
298 | _onAfterPrevCallback: options.onAfterPreCallback || false,
299 | _addModal: options.modal || false,
300 | _modalAlpha: options.modalAlpha || 0.7,
301 | _staticElements: options.staticElements || []
302 | };
303 |
304 | //////////////////////////////////////////////////////////////////////////////////////////////
305 |
306 | var bgRect;
307 | _this._modal = {};
308 | if (_this.options._addModal === true) {
309 | _this._modal = game.add.graphics(game.width, game.height);
310 | _this._modal.beginFill(0x000000, _this.options._modalAlpha);
311 | _this._modal.x = 0;
312 | _this._modal.y = 0;
313 | _this._modal.inputEnabled = true;
314 | _this._modal.drawRect(0, 0, _this.game.width, _this.game.height);
315 | } else {
316 | _this._modal = false;
317 | }
318 |
319 | //////// OBJECTS GROUP
320 | ///
321 | _this.sliderBGGroup = _this.game.add.group();
322 | _this.sliderMainGroup = _this.game.add.group();
323 | _this.sliderBGGroup.width = _this.options._width;
324 | _this.sliderMainGroup.width = _this.options._width;
325 | if (_this.options._mode === "horizontal") {
326 | _this.sliderMainGroup.width = _this.options._width * _this.options._objects.length;
327 |
328 | // if used as a placeholder don't make the width = 0
329 | if (_this.options._objects.length === 0) {
330 | _this.sliderMainGroup.width = _this.options._width;
331 | }
332 | } else {
333 | _this.sliderMainGroup.height = _this.options._height * _this.options._objects.length;
334 |
335 | // if used as a placeholder don't make the height = 0
336 | if (_this.options._objects.length === 0) {
337 | _this.sliderMainGroup.height = _this.options._height;
338 | }
339 | }
340 | _this.sliderMainGroup.height = _this.options._height;
341 | _this.sliderMainGroup.x = _this.options._x;
342 | _this.sliderMainGroup.y = _this.options._y;
343 | //
344 | _this.sliderBGGroup.height = _this.options._height;
345 | _this.sliderBGGroup.x = _this.options._x;
346 | _this.sliderBGGroup.y = _this.options._y;
347 |
348 | /// DRAG for horizontal
349 | /*var draggableSprite = _this.game.add.sprite(_this.options._x, _this.options._y);
350 | draggableSprite.width = (_this.options._objects.length+5) * _this.options._width;
351 | draggableSprite.height = _this.options._height;
352 | draggableSprite.y = _this.options._y;
353 | draggableSprite.inputEnabled = true;
354 | draggableSprite.input.enableDrag();
355 | draggableSprite.input.allowVerticalDrag = false;
356 | // draggableSprite.input.enableSnap(_this.options._width, _this.options._height, true, true);
357 | draggableSprite.events.onDragStart.add(_this.onDragStart, _this);
358 | draggableSprite.events.onDragStop.add(_this.onDragStop, _this);
359 | draggableSprite.events.onDragUpdate.add(_this.dragUpdate, _this);
360 | _this._draggableSprite = draggableSprite;*/
361 |
362 | /////// END OF OBJECTS GROUP
363 |
364 | //////// CONTROLS GROUP
365 | _this.sliderControlsGroup = _this.game.add.group();
366 | _this.sliderControlsGroup.width = _this.options._width;
367 | _this.sliderControlsGroup.height = _this.options._height;
368 | _this.sliderControlsGroup.x = _this.options._x;
369 | _this.sliderControlsGroup.y = _this.options._y;
370 |
371 | //////// END OF CONTROLS GROUP
372 |
373 | //MASK
374 | var maskGraphics = game.add.graphics(0, 0);
375 | maskGraphics.beginFill(0xffffff);
376 | maskGraphics.drawRect(_this.options._x, _this.options._y, _this.options._width, _this.options._height);
377 | _this.sliderMainGroup.mask = maskGraphics;
378 |
379 | /// create main bg
380 | if (_this.options.customSliderBG === false) {
381 | bgRect = game.add.graphics(_this.options._width, _this.options._height);
382 | bgRect.beginFill(_this.options.sliderBG, _this.options.sliderBGAlpha);
383 | bgRect.x = _this.options._x;
384 | bgRect.y = _this.options._y;
385 |
386 | bgRect.drawRect(0, 0, _this.options._width, _this.options._height);
387 | _this.sliderMainGroup.add(bgRect);
388 | } else {
389 | _this.sliderBGGroup.add(_this.options.customSliderBG);
390 | }
391 | // add controls
392 | if (_this.options._showHandles === true) {
393 |
394 | var chevronRight;
395 | var chevronLeft;
396 |
397 | if (_this.options._customHandleNext === "") {
398 | chevronRight = game.add.image(0, 0, "slider_chevron_right");
399 | chevronRight.scale.setTo(0.6, 0.6);
400 | } else {
401 | chevronRight = game.add.image(0, 0, _this.options._customHandleNext);
402 | }
403 | chevronRight.x = _this.options._width - (chevronRight.width + 10); //_this.options._x+_this.options._width - (chevronRight.width+10);
404 | chevronRight.y = (_this.options._height / 2) - chevronRight.height / 2;
405 | chevronRight.inputEnabled = true;
406 | chevronRight.events.onInputDown.add(function(e, pointer) {
407 | if (_this.options._onPreNextCallback) {
408 | _this.options._onPreNextCallback();
409 | }
410 |
411 | if (_this.tweenObj.isRunning !== true) {
412 | _this.stopSlider();
413 | _this.goToNext();
414 | }
415 |
416 | if (_this.options._onAfterNextCallback) {
417 | _this.options._onAfterNextCallback();
418 | }
419 |
420 | }, _this);
421 |
422 |
423 | if (_this.options._customHandlePrev === "") {
424 | chevronLeft = game.add.image(0, 0, "slider_chevron_left");
425 | chevronLeft.scale.setTo(0.6, 0.6);
426 | } else {
427 | chevronLeft = game.add.image(0, 0, _this.options._customHandlePrev);
428 | }
429 | chevronLeft.x = 10;
430 | chevronLeft.y = (_this.options._height / 2) - chevronLeft.height / 2;
431 | chevronLeft.inputEnabled = true;
432 | chevronLeft.events.onInputDown.add(function(e, pointer) {
433 | if (_this.options._onPrePrevCallback) {
434 | _this.options._onPrePrevCallback();
435 | }
436 |
437 | if (_this.tweenObj.isRunning !== true) {
438 | _this.stopSlider();
439 | _this.goToPrev();
440 | }
441 |
442 | if (_this.options._onAfterPrevCallback) {
443 | _this.options._onAfterPrevCallback();
444 | }
445 |
446 | }, _this);
447 |
448 |
449 |
450 | // if not infinite initialy hide it
451 | if (_this.options.infiniteLoop === false) {
452 | chevronLeft.alpha = 0;
453 | }
454 | } else {
455 |
456 | }
457 |
458 |
459 | // ADDING THE BLOCKS
460 | if (_this.options._objects.length > 0) {
461 | var objArr = _this.options._objects.slice(0);
462 | var length = Number(objArr.length);
463 | for (var i = 0; i < length; i++) {
464 | var x;
465 | var y;
466 | // mode
467 | if (_this.options._mode === "horizontal") {
468 | objArr[i].x = (_this.options._width * i);
469 | } else if (_this.options._mode === "vertical-from-top") {
470 | objArr[i].y = (_this.options._height * i) * -1;
471 |
472 | } else if (_this.options._mode === "vertical-from-bottom") {
473 | objArr[i].y = (_this.options._height * i);
474 | }
475 | _this.sliderMainGroup.add(objArr[i]);
476 | }
477 | _this.options._objects = _this.sliderMainGroup.children;
478 | //window.console.log(_this.options._objects.length, _this.options._objects, _this.sliderMainGroup.children.length);
479 | }
480 |
481 |
482 | // ADDING STATIC ELEMENTS
483 | if (_this.options._staticElements.length > 0) {
484 | for (var i = 0; i < _this.options._staticElements.length; i++) {
485 | game.world.bringToTop(_this.options._staticElements[i]);
486 | _this.sliderBGGroup.add(_this.options._staticElements[i]);
487 | }
488 | }
489 |
490 |
491 | // move the chevrons to top
492 | if (_this.options._showHandles === true) {
493 | _this.sliderControlsGroup.add(chevronRight);
494 | _this.sliderControlsGroup.add(chevronLeft);
495 | }
496 |
497 | //////////// AUTO ANIMATE
498 | if (_this.options.autoAnimate === true) {
499 | _this.startSlider();
500 | }
501 |
502 | },
503 | startSlider: function() {
504 | _this.startSlider();
505 | },
506 | stopSlider: function() {
507 | _this.startSlider();
508 | },
509 | moveToSlide: function(index, animate) {
510 |
511 | _this.moveToSlide(index, animate);
512 | },
513 | goToNext: function() {
514 | _this.goToNext();
515 | },
516 | goToPrev: function() {
517 | _this.goToPrev();
518 | },
519 | getCurrentIndex: function() {
520 | return _this.slideIndex;
521 | },
522 | refreshSlider: function() {
523 |
524 | },
525 | removeItemAt: function(index) {
526 | _this.sliderMainGroup.removeChildAt(index);
527 | _this.options._objects = _this.sliderMainGroup.children;
528 | },
529 | hideSlider: function() {
530 | _this.sliderMainGroup.visible = false;
531 | _this.sliderControlsGroup.visible = false;
532 | _this.sliderBGGroup.visible = false;
533 | if (_this._modal) {
534 | _this._modal.visible = false;
535 | }
536 | },
537 | showSlider: function() {
538 | _this.sliderMainGroup.visible = true;
539 | _this.sliderControlsGroup.visible = true;
540 | _this.sliderBGGroup.visible = true;
541 | if (_this._modal) {
542 | _this._modal.visible = true;
543 | }
544 | }
545 | };
546 | };
547 |
--------------------------------------------------------------------------------
/phase-slider.min.js:
--------------------------------------------------------------------------------
1 | var phaseSlider=phaseSlider||{};phaseSlider=function(o){var i=this;o.phaseSlider=i,i.game=o,i.locked=!1,i.slideIndex=0,i.slider_timer=null,i.tweenObj={};var t="data:image/png;base64,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",e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAACACAYAAACP+K52AAAOeklEQVR4Xu2dB7AlRRWGwZwzZvGZyxzBhCXmhGLO4AMjKuaIioCpFEUwZxdzzhkUMKNiQEyA8tacI0EFlP9b7qyz9917+/w9PTP91j1Vp1jqdfec/u9Mz8mz9VZbqFcEtu519S2Lb1Ua4IsI0+uIryTeRnxe8VnE/xD/Vnyc+HviE/9fsC8B8A0F1v3FdxZfXZxa83SN+bb4E+J3iY/fnMFOgTFv78y7r/gp4ht1AOi/mnuo+AXiIzqsU+3UHIC3025eJd6+8K64o/cUrxRed9TlHIA5S58l3lt8tp6k5mzeQ/yOntYffNkowOeWZO8U32MgCV+m6zxVzBGypikC8AW1w0+JbzbwTt+m6+0u5qW4ZikF8MW0s8+Jrz/SDj+o6z5Q/O+Rrt/5sosAvpRW5w1/jc5X6bbApzX9XuJTui0zzux5AF9O4hwmxmDIJR7tv4p5OV5InHpaFl3ncP3xruI1Z6DM2jR37hfFV85A9iea8xbxZ8Q/Ep86WYOXJMfMTmLO1UtkrH2k5txJ/JeMuaNNmQb4nJLky2LXePiT5jxRjHqVevOfS2OeJH6u+BzmzjGzby/+vTlvtOHTAL9WkjzKlIZNc2f+0pzHj4hx4d7NPCW3zbieKV6Z4W2Ab6klDzeX/drksf2bOa8ZfhX9gxfptub8FY2/jfhn5rzBhzcA89/vivGERekLGng38UnRCXPGAS4gA7ZDv9Zg7mTO+mqpARgL7UOGlJ/U2HuL/2nMWTT0kvrjIeJrmev9QePvIP6OOW+w4Q3A3EE8chFCQ+DObTSEyJzImItq0GfFuD8dQhXEVcpxVR0B8GXFPxdH9NTva9zNxTjQ+6ALaFGejh3MxTmm+NE5tqoiQEUvfXNQKvwRfd8p59E1PixGHXOI4+o+YjSTagiA3ypeDkj08cldEhjaeQj6+HvFO5srcWw9WPw+c15vwwEYCyniPEdwXJZDET7ng8U4exzCRH/45MZx5vUyFoB/J754YHVMaAKXQxJ+jNdNAHOuizX5ePErnUl9jAVgvFSYr4uIR4/HNmUG9yEjax4gxhR3aS9NeJE7qeR4AP6POKVBoDXwhh+T9tPFn5MhAAAD9CgEsIB3vsDVyXE4OTCuzyGEkV6ScYFXaM4TxIM/gQBMMkjENYn++9WMzZWeQlD01YGnbvq6aEsPE/PEDkYAjGKPJZSi/TXgaalBA/19V10Hv/NZzeuh+u0iLm2FzhUDgPHL7hMQ9M8aQ4QD07QGIoxEZpDrU0afxyD51xCbAGAefZzsEeIsQ/2phYhwEBglYuLQ5zUYI6arJzB5TQBG1/yF+NLJ0WcOWBZjANRCO0oQ7srIi7otM+8TjsZcX3Zo/4165qhAnF8k+znuzZAwHQbdWHOJPl/YXAM3Jz6PP5rzwsMbgLHkThDjaIkQ5uhu4rdHBg80hmABPuWIVdoW6Yf6n9uJceAXp7aB4dzFCIJO+WgxpmwtdDUJgm8bF6xDP9Vg/OHrnUmRsW2AeVEQNrpqZGJrDMr/S805fQ5f0uK8xK5oXoSgLSEogqrFaNpEJprwFTF+B4e4+1H3aiFe2NzJJIQ7RDoAx8XRzqRFY2f5IHBLkniX8k9Mr4tD5smlBCuwTm5eHYktdxR/o4AMc0F8rBbPcfW9XvM4lwc1RxcAQWYo2sVNTbDwz5CqdYQ5b9XwRXcpTmteYOjJDpHdsyyuJe0UJ9XHxLd2NqGxuHHvKSbIm02pY4BoAkaFm9FOTA1duZa0U/zd7xeTgeQQ8j9AnK3zpwBGmLuL3yN2X3yE4Mm3qCXt9OyShaeL4h2HOun8EYARBmuHuzJqiDQbIEuTu6avML8DFGM57t4kxkhyKFvnjwKMMLcQExJ3Ixu8jXkr15J2yp4PElPR5JKt8zsAIwwZkTz6VHQ6hF6JfllT2ukLJc8znU1Mxj5P/6XSKkQuwCx6bTE2v5t2eqzmYI66aa6hjWQOAmCAdims8+cAjDBkQmKOUmrg0IoGY45i+9dCHBUcGS4Wb9AcwlcLdX530TYol9f/YI5G4nnteTWmnfLS4+Xn6vwk4iyLT5t3t3QBmDVJRuG4uKZ5O+J/RTOpKe30fpIH9yvqnEMf0WB0/pkhqK4AIwhpp9TS3cCRSmOJJBBRqCFS3YiOSolBkkrEmd4q+0fnX5XWUAJgLobNT3Sa+J5DxMSIjXGe10KY1JjWmNgOkTrLDbPJnVwKYARBoI+Ko4ncjfAIRLZ8TWmnpOlSPsyN4xBpARwXG6kkwCyKOc0jhifKoerSTiU8dX08+rg9HSKDCK1kA5UGmDVxDGHz89JwCHWHzBsycGohyoh5iUcj7siN74X44IZOLn0AzLqoO28Ukz3vUDVppy2hCT3xjlgyNsIZviF5vC+Am7UP1D8eZwjWDB097XRKZoKo6PwEVaOEW+GoPgFuBMm1+UdNO52BIukA3MnRUjN06l2HABhZc23+0dJO59ymnMV0zIr4YdCJtxkKYOTNtfnJoiR8VUuczyna3HlIgAE51+YnokLa6VybP3owFhr3Ta0T6UhwwNAAs79cm583M+GeQdJOEz8EXrTXBH6sw8YAGLkwRDBI3Dgfb3JihL2nnSbAI/spkgG0fiyAkR+TGtPatfnJPLqLuNe00wTAZNbzJKUy7E8aE2D2kGvz8yanyr63tNPA4x8pHjptrQJ81ARgWtmMRRGATx0T4C5HBG7Bv4+F7ORoiBwRJ44FcJeXHDb+2PV6mMw/DvzAJ4wBMGoa3jY3HasmNe0xkp8OtCk6dGiAHyqJiMa6wcXaDA1espF2k/sPCTDlXy8Xu9ekWcgjxLWYyhg7RC4itJO72ciis8bQd/j5GZOJDFBlP3iN8RxZ6ZCFBhOJctAGchBnD27HZ2SAS9vxZ2fM62sKnjQCm1GfMJGZ3fu8g1kbdyPZ8i7xg7zYndTj+CWt7RTW8MRdT3x0XwBjQhIywnvmEILh1qSavhbKKQ37gISnHtp+4UQ2TWYMKUUbLmAQic4EPdcZc/oeel1dgMiyU9yII4qox0ofAJMRw6+HM8YhwvaUKzC3Fsotz8WVubE4s+QRQTE23jG32IR+Z7QmINGjFqJRKokwboE55W8PaW+iFMB0uAYgt1wKVYaOfXTbroVyWyRwlOAC2KTwpwTAfLOIrPeIZdMGkcYebObrtSArOSjberfYbfJBLR5zVzVL7QpwbskqXVNJX6U2uhYi5ofumnKiT8vLe+NB03duM6gLwEtaxNENm2v+Sv8gyz3ijRoKfLp+E2Nz8ThYc/CvzC26dBdsNpyjGzKXnhT4gflvLcQHr2j45BI/CEbUQjM+B+Ac3RDhuWO5c7mDayG3R0YjN73bnh7ZhAtwrm5II33KuDh7ayG+l8TXEFyi+2DYceUAvKMWzmk+hJZAiKeWQkR80XxtAReoS3j2SGgMUxTgXN0Q/RY9t5YvuBBFWSfmre8QvuhHiqlEsigCcG4DOAwP5pZqpG9tbMZgdFsc5SSuOES6Fp0G0Y9tSgGc28IQ3RDfwmAtDBM7px8RxezkUjhE5JgYIi6ALFoEcG4TzqRumCVp/iSK1/ErUMzuEJFrItika2XTPIA5zKnHdSmkG7qLdhhP0TpmfCQTsn0Zci7wCEZbTs4VcRbAzlcJ2gsTgcgJDXXAb+FUkqQpYKF43SGyhThKiL11pmmA0XO/JHbLSS3dsLPU6QUoUseMdz/fQ496jKEfpC8RG9EGmG4m9HVwP9Jn64Yx0bJHUZzOuUmxukN8rAUzvuiHtNsAu8Uq2bqhs2tzLEXpHAsUqTtEF3DApQttUWoA5mNNOGCiRdCddMOiO/jfYhSj4/SmON2hYzQYM76XT1g0AJODEO3Uj8eegCa5YrUQRegUo7u1xd/SHF5odPfuhQAYBzNtXriLU8SxgHVGj4RaiJcShoDbEYuXOe0Lek2DBWAUcNpvRag2VQw/B98tcms95vZ3iIDgjAHgfcWRLkp8kucK4loazdE2gGpKNw2Wpw/zd5CuhABMwI6+Zimy2lmlFuv499w02GSPnY5yrZoOwOh9Ed2X3sLkxY5NuWmwoS5RpTcHwPhqU6VUBPXwSI3tHctNgw33OesD4MjHolBjXP2ytKy5abCjdufmDuauTL0ouMvPXxqx4HrImJsGa/eaDMoUHobwBCIjGdtkGA4dtERHJ0yzHN7RmQOzu6Wa10kOB2DccpGeZ3SG4rM2Q1GXNNjdJGQV3/gA4HXiTTIC5yC4sQ/NAAjnpsF27lhdem8ATNIz2egp4rHbbnLHp8Z2+XtuGmyRnutdBJ81F4AvI8ZNlwqAMp8PV99E3FelZW4abLGvBvQBMGtSPXOr4OJ4rUjVLG1qVvHdiyAG4WHNXQtgzgusdAP83DTY4l9uCSMXHNgATDoRrWbpWBelUg3wl3TBnDRYXKxEIeisXS21z12OCI4Kh7o2wM9Ng6WDNn7gFUfYMcZOv9hIiiMZ2SFefDiuCRo6RAQb1c8pkWL9Xr//5mwgMnYaYPRPki3wnDmEr4JEZrJ6UkXbOI0wYXHcuLUQNbSScXCZqZoRkaXxEM51l3B9UufAS5BgYtOCC92WH41smWUxhTMuDfINTleo1Ph5ui9V5bx43Ab47ethmNAZiheo+3GTabkH+4psCjD374uMC4Kg5BhEm2G6146OH/Q7yFGhouNS1hs+YB5390yOXj81jnxePiBYS0vFlLyr/p4CmAm56Z+2MFMTamsKmrWfCMAszJufz5y72eFZQmkSaVxoGWueogCzUcaS/bOPOBUByQWG8lqKU+hruVmQA3CzYWqSMUgwFEoSoJKpWVMdXef95QDcXBQHEcV423eQAqME7xxHQk1F4R22tOnULgA3K9GbhkwZSr1wFqXWJMh6pBj1Cy1hfbHdVLhQCgxXZLIbAZlEFnwM5FtgcOAQ/42YPFx8F7WUdrn7s8eXBtgWYHOfsAXgnn/hMwDI3H90EUTR0QAAAABJRU5ErkJggg==";return o.load.image("slider_chevron_left",t),o.load.image("slider_chevron_right",e),i.goToNext=function(){if(i.locked=!0,"horizontal"===i.options._mode){var t=i.sliderMainGroup.x+-1*i.options._width;if(i.slideIndex>=i.options._objects.length-1&&i.options.autoAnimate===!1)return i.stopSlider(),!1;if(i.options.autoAnimate===!0&&i.slideIndex>=i.options._objects.length-1)return i.slideIndex=0,i.sliderMainGroup.x=i.options._x,this.locked=!1,!0;i.tweenObj=o.add.tween(i.sliderMainGroup).to({x:t},i.options.animationDuration,i.options.animationEasing,!0,0,0,!1),i.tweenObj.onComplete.add(function(){this.locked=!1,this.slideIndex+=1,i.options.autoAnimate===!1&&this.slideIndex>=i.options._objects.length-1&&i.options._showHandles===!0&&(this.sliderControlsGroup.children[0].alpha=0),i.options._showHandles===!0&&(this.sliderControlsGroup.children[1].alpha=1)},i)}else{var e;if("vertical-from-top"===i.options._mode?e=i.sliderMainGroup.y+i.options._height:"vertical-from-bottom"===i.options._mode&&(e=i.sliderMainGroup.y+-1*i.options._height),i.slideIndex>=i.options._objects.length-1&&i.options.autoAnimate===!1)return i.stopSlider(),!1;if(i.options.autoAnimate===!0&&i.slideIndex>=i.options._objects.length-1)return i.slideIndex=0,i.sliderMainGroup.y=i.options._y,this.locked=!1,!0;i.tweenObj=o.add.tween(i.sliderMainGroup).to({y:e},i.options.animationDuration,i.options.animationEasing,!0,0,0,!1),i.tweenObj.onComplete.add(function(){this.locked=!1,this.slideIndex+=1,i.options.autoAnimate===!1&&this.slideIndex>=i.options._objects.length-1&&i.options._showHandles===!0&&(this.sliderControlsGroup.children[0].alpha=0),i.options._showHandles===!0&&(this.sliderControlsGroup.children[1].alpha=1)},i)}},i.goToPrev=function(){if(i.locked=!0,"horizontal"===i.options._mode){var t=i.sliderMainGroup.x+i.options._width;if(i.slideIndex<=0&&i.options.autoAnimate===!1)return i.stopSlider(),!1;i.tweenObj=o.add.tween(i.sliderMainGroup).to({x:t},i.options.animationDuration,i.options.animationEasing,!0,0,0,!1),i.tweenObj.onComplete.add(function(){this.locked=!1,this.slideIndex-=1,this.slideIndex<0&&(this.slideIndex=0),i.options.infiniteLoop===!1&&this.slideIndex<=0&&i.options._showHandles===!0&&(this.sliderControlsGroup.children[1].alpha=0),i.options._showHandles===!0&&(this.sliderControlsGroup.children[0].alpha=1)},i)}else{var e;if("vertical-from-top"===i.options._mode?e=i.sliderMainGroup.y+-1*i.options._height:"vertical-from-bottom"===i.options._mode&&(e=i.sliderMainGroup.y+i.options._height),i.slideIndex<=0&&i.options.autoAnimate===!1)return i.stopSlider(),!1;i.tweenObj=o.add.tween(i.sliderMainGroup).to({y:e},i.options.animationDuration,i.options.animationEasing,!0,0,0,!1),i.tweenObj.onComplete.add(function(){this.locked=!1,this.slideIndex-=1,this.slideIndex<0&&(this.slideIndex=0),i.options.autoAnimate===!1&&this.slideIndex<=0&&i.options._showHandles===!0&&(this.sliderControlsGroup.children[1].alpha=0),i.options._showHandles===!0&&(this.sliderControlsGroup.children[0].alpha=1)},i)}},i.startSlider=function(){var t=o.time.create(!1);t.start(),t.loop(Phaser.Timer.SECOND*i.options.animationDelay,i.goToNext,i),i.slider_timer=t},i.stopSlider=function(){return null===i.slider_timer?!1:(i.slider_timer.stop(!0),void(i.slider_timer=null))},i.moveToSlide=function(t,e){var n;if(t>=i.options._objects.length)return!1;if("horizontal"===i.options._mode)if(n=i.options._x-i.options._width*t,e===!0){o.add.tween(i.sliderMainGroup).to({x:n},i.options.animationDuration,i.options.animationEasing,!0,0,0,!1)}else i.sliderMainGroup.x=n;else"vertical-from-top"===i.options._mode||"vertical-from-bottom"===i.options._mode},i.onDragStart=function(o,t,e,n){i.dragInit=t.x,i.lastDrag=t.x},i.onDragStop=function(o){},i.dragUpdate=function(o,t,e,n){var s=e;if(t.xa?i.sliderMainGroup.x-1:i.sliderMainGroup.x+1}else{var a=Math.abs(t.x)-Math.abs(i.lastDrag);s=0>a?i.sliderMainGroup.x-1:i.sliderMainGroup.x+1}s<=-1*(i.options._x+i.options._width*(i.options._objects.length-2))?s=-1*(i.options._x+i.options._width*(i.options._objects.length-2)):s>=i.options._x&&(s=i.options._x),i.sliderMainGroup.x=s,i.lastDrag=t.x},{createSlider:function(t){i.slideIndex=0,i.options={_mode:t.mode||"horizontal",_width:t.width||500,_height:t.height||400,_animationEffect:t.animationEffect||"slide",autoAnimate:t.autoAnimate||!1,infiniteLoop:t.infiniteLoop||!1,animationDelay:t.animationDelay||2,animationDuration:t.animationDuration||600,animationEasing:t.animationEasing||Phaser.Easing.Cubic.Out,_x:t.x||0,_y:t.y||0,_objects:t.objects||[],sliderBG:t.sliderBG||3527392,customSliderBG:t.customSliderBG||!1,sliderBGAlpha:t.sliderBGAlpha||1,_customHandleNext:t.customHandleNext||"",_customHandlePrev:t.customHandlePrev||"",_showHandles:void 0==t.showHandles?!0:t.showHandles,_onNextCallback:t.onNextCallback||!1,_onPrevCallback:t.onPrevCallback||!1,_addModal:t.modal||!1,_modalAlpha:t.modalAlpha||.7,_staticElements:t.staticElements||[]};var e;i._modal={},i.options._addModal===!0?(i._modal=o.add.graphics(o.width,o.height),i._modal.beginFill(0,i.options._modalAlpha),i._modal.x=0,i._modal.y=0,i._modal.inputEnabled=!0,i._modal.drawRect(0,0,i.game.width,i.game.height)):i._modal=!1,i.sliderBGGroup=i.game.add.group(),i.sliderMainGroup=i.game.add.group(),i.sliderBGGroup.width=i.options._width,i.sliderMainGroup.width=i.options._width,"horizontal"===i.options._mode?(i.sliderMainGroup.width=i.options._width*i.options._objects.length,0===i.options._objects.length&&(i.sliderMainGroup.width=i.options._width)):(i.sliderMainGroup.height=i.options._height*i.options._objects.length,0===i.options._objects.length&&(i.sliderMainGroup.height=i.options._height)),i.sliderMainGroup.height=i.options._height,i.sliderMainGroup.x=i.options._x,i.sliderMainGroup.y=i.options._y,i.sliderBGGroup.height=i.options._height,i.sliderBGGroup.x=i.options._x,i.sliderBGGroup.y=i.options._y,i.sliderControlsGroup=i.game.add.group(),i.sliderControlsGroup.width=i.options._width,i.sliderControlsGroup.height=i.options._height,i.sliderControlsGroup.x=i.options._x,i.sliderControlsGroup.y=i.options._y;var n=o.add.graphics(0,0);if(n.beginFill(16777215),n.drawRect(i.options._x,i.options._y,i.options._width,i.options._height),i.sliderMainGroup.mask=n,i.options.customSliderBG===!1?(e=o.add.graphics(i.options._width,i.options._height),e.beginFill(i.options.sliderBG,i.options.sliderBGAlpha),e.x=i.options._x,e.y=i.options._y,e.drawRect(0,0,i.options._width,i.options._height),i.sliderMainGroup.add(e)):i.sliderBGGroup.add(i.options.customSliderBG),i.options._showHandles===!0){var s,a;""===i.options._customHandleNext?(s=o.add.image(0,0,"slider_chevron_right"),s.scale.setTo(.6,.6)):s=o.add.image(0,0,i.options._customHandleNext),s.x=i.options._width-(s.width+10),s.y=i.options._height/2-s.height/2,s.inputEnabled=!0,s.events.onInputDown.add(function(o,t){i.options._onNextCallback&&i.options._onNextCallback(),i.tweenObj.isRunning!==!0&&(i.stopSlider(),i.goToNext())},i),""===i.options._customHandlePrev?(a=o.add.image(0,0,"slider_chevron_left"),a.scale.setTo(.6,.6)):a=o.add.image(0,0,i.options._customHandlePrev),a.x=10,a.y=i.options._height/2-a.height/2,a.inputEnabled=!0,a.events.onInputDown.add(function(o,t){i.options._onPrevCallback&&i.options._onPrevCallback(),i.tweenObj.isRunning!==!0&&(i.stopSlider(),i.goToPrev())},i),i.options.infiniteLoop===!1&&(a.alpha=0)}if(i.options._objects.length>0){for(var d=i.options._objects.slice(0),r=Number(d.length),l=0;r>l;l++){"horizontal"===i.options._mode?d[l].x=i.options._width*l:"vertical-from-top"===i.options._mode?d[l].y=i.options._height*l*-1:"vertical-from-bottom"===i.options._mode&&(d[l].y=i.options._height*l),i.sliderMainGroup.add(d[l])}i.options._objects=i.sliderMainGroup.children}if(i.options._staticElements.length>0)for(var l=0;l