-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSliders.as
More file actions
100 lines (91 loc) · 2.45 KB
/
Sliders.as
File metadata and controls
100 lines (91 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
class Sliders extends MovieClip
{
static private var SLIDER_SCALE: Number = 100; // Using 65 when on 1280x720
static private var MAX_SLIDERS: Number = 5;
static private var SLIDER_NAME: String = "Slider";
/* STAGE */
public var background: MovieClip;
/* VARIABLES */
private var instanceCounter: Number;
private var sliders: Array;
private var rootCoordinates: Object;
/* INIT */
public function Sliders()
{
instanceCounter = 0;
sliders = new Array();
}
public function onLoad()
{
rootCoordinates = {
x: 0,
y: Stage.visibleRect.y + Stage.visibleRect.height - Stage.safeRect.y
};
globalToLocal(rootCoordinates);
}
/* API */
public function setSliders(/* args */)
{
var count = Math.min(MAX_SLIDERS, Math.max(arguments.length, 0));
// trace("Setting " + count + " sliders");
if (count > instanceCounter) {
for (var i = instanceCounter; i < count; i++) {
var slider = attachMovie(SLIDER_NAME, SLIDER_NAME + i, getNextHighestDepth(), {
_xscale: SLIDER_SCALE,
_yscale: SLIDER_SCALE
});
sliders.push(slider);
}
} else if (count < instanceCounter) {
for (var i = count; i < instanceCounter; i++) {
sliders[i].removeMovieClip();
}
sliders.splice(count, instanceCounter - count);
}
for (var i = 0; i < count; i++) {
sliders[i].setName(arguments[i].name);
sliders[i].id = arguments[i].id;
// trace("Setting slider " + i + " to " + arguments[i].name + " with id " + arguments[i].id);
}
instanceCounter = count;
positionSliders();
}
public function updateSliderPct(id: Number, enj: Number)
{
for (var i = 0; i < sliders.length; i++) {
if (sliders[i].id == id) {
sliders[i].updateMeterPercent(enj);
break;
}
}
}
public function setSliderPct(id: Number, enj: Number)
{
for (var i = 0; i < sliders.length; i++) {
if (sliders[i].id == id) {
sliders[i].setMeterPercent(enj);
break;
}
}
}
/* PRIVATE */
private function positionSliders()
{
if (sliders.length == 0) {
trace("No sliders to position");
return;
}
var shift_y = sliders[0]._height * 0.5;
var shift_x = sliders[0]._width * 0.06;
var anchorX = rootCoordinates.x + sliders[0]._width / 2;
var anchorY = rootCoordinates.y - sliders[0]._height / 2;
anchorX -= shift_y / 2;
anchorY += shift_x / 2;
for (var i = 0; i < sliders.length; i++) {
var n = sliders.length - 1 - i;
var it = sliders[i];
it._x = anchorX + (i * shift_x);
it._y = anchorY - (n * shift_y);
}
}
}