Subversion Repositories HomeAutomation

Rev

Rev 73 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 73 Rev 641
1
class TimeDateObj {
1
class TimeDateObj {
2
   
2
   
3
    private var timeDateMC:MovieClip;
3
    private var timeDateMC:MovieClip;
4
    private var timeDateTF:TextField;
4
    private var timeDateTF:TextField;
5
   
5
   
6
    private var timeDateFont:TextFormat;
6
    private var timeDateFont:TextFormat;
7
    //variabeldeklaration
7
    //variabeldeklaration
8
    //screen position and size
8
    //screen position and size
9
    private var timeDateTop:Number;
9
    private var timeDateTop:Number;
10
    private var timeDateLeft:Number;
10
    private var timeDateLeft:Number;
11
    private var timeDateWidth:Number;
11
    private var timeDateWidth:Number;
12
    private var timeDateHeight:Number;
12
    private var timeDateHeight:Number;
13
   
13
   
14
    private var timeDateConfFormat:String;
14
    private var timeDateConfFormat:String;
15
   
15
   
16
    function TimeDateObj (mainScene:MovieClip, configXML:XMLNode) {
16
    function TimeDateObj (mainScene:MovieClip, configXML:XMLNode) {
17
        //TODO
17
        //TODO
18
        //objektet lyder inte width
18
        //objektet lyder inte width
19
        var configArr:Array = parseConfig(configXML);
19
        var configArr:Array = parseConfig(configXML);
20
       
20
       
21
        if (configArr[0] > -1) {
21
        if (configArr[0] > -1) {
22
            trace("Config error: " + configArr[0]);
22
            trace("Config error: " + configArr[0]);
23
        } else {
23
        } else {
24
            timeDateFont = new TextFormat();
24
            timeDateFont = new TextFormat();
25
           
25
           
26
            timeDateFont.font = configArr[1];
26
            timeDateFont.font = configArr[1];
27
            timeDateFont.color = configArr[6];
27
            timeDateFont.color = configArr[6];
28
            timeDateLeft = configArr[2];
28
            timeDateLeft = configArr[2];
29
            timeDateTop = configArr[3];
29
            timeDateTop = configArr[3];
30
            timeDateWidth = configArr[4];
30
            timeDateWidth = configArr[4];
31
            timeDateHeight = configArr[5];
31
            timeDateHeight = configArr[5];
32
            timeDateConfFormat = configArr[7];
32
            timeDateConfFormat = configArr[7];
33
           
33
           
34
            timeDateMC = mainScene.createEmptyMovieClip("timeDateMC", mainScene.getNextHighestDepth());
34
            timeDateMC = mainScene.createEmptyMovieClip("timeDateMC", mainScene.getNextHighestDepth());
35
            timeDateMC._x=timeDateLeft;
35
            timeDateMC._x=timeDateLeft;
36
            timeDateMC._y=timeDateTop;
36
            timeDateMC._y=timeDateTop;
37
            timeDateTF = timeDateMC.createTextField("timeDateTF", 1, 0, 0, 0, 10);
37
            timeDateTF = timeDateMC.createTextField("timeDateTF", 1, 0, 0, 0, 10);
38
            timeDateTF.embedFonts = true;
38
            timeDateTF.embedFonts = true;
39
       
39
       
40
       
40
       
41
            timeDateTF.text = "Bla bla";
41
            timeDateTF.text = "Bla bla";
42
            timeDateTF.setTextFormat(timeDateFont);
42
            timeDateTF.setTextFormat(timeDateFont);
43
 
43
 
44
            timeDateTF.autoSize = "left";
44
            timeDateTF.autoSize = "left";
45
            timeDateMC._width = timeDateWidth;
45
            timeDateMC._width = timeDateWidth;
46
            timeDateMC._height = timeDateHeight;
46
            timeDateMC._height = timeDateHeight;
47
           
47
           
48
            timeDateTF.selectable = false;
48
            timeDateTF.selectable = false;
49
            timeDateTF.type = "dynamic";
49
            timeDateTF.type = "dynamic";
50
            timeDateMC._visible = true;
50
            timeDateMC._visible = true;
51
           
51
           
52
           
52
           
53
            updateTimer();
53
            updateTimer();
54
            //timeDateTF._rotation = 45;
54
            //timeDateTF._rotation = 45;
55
            timeDateMC._rotation = configArr[8];
55
            timeDateMC._rotation = configArr[8];
56
           
56
           
57
            var intervalID:Number = setInterval(this, "updateTimer", 200);
57
            var intervalID:Number = setInterval(this, "updateTimer", 200);
58
            //trace(timeDateTF.text);
58
            //trace(timeDateTF.text);
59
        }
59
        }
60
    }
60
    }
61
   
61
   
62
   
62
   
63
     private function updateTimer():Void {
63
     private function updateTimer():Void {
64
        /*var my_date:Date = new Date();
64
        /*var my_date:Date = new Date();
65
        var minStr:String = my_date.getMinutes().toString();
65
        var minStr:String = my_date.getMinutes().toString();
66
        var div:String = ":";
66
        var div:String = ":";
67
        if (minStr.length == 1) {
67
        if (minStr.length == 1) {
68
            var div:String = ":0";
68
            var div:String = ":0";
69
        }*/
69
        }*/
70
        //trace(timeDateConfFormat);
70
        //trace(timeDateConfFormat);
71
        timeDateTF.text = parseFormat(timeDateConfFormat);
71
        timeDateTF.text = parseFormat(timeDateConfFormat);
72
        //timeDateTF.text = my_date.getHours() + div + minStr;
72
        //timeDateTF.text = my_date.getHours() + div + minStr;
73
        timeDateTF.setTextFormat(timeDateFont);
73
        timeDateTF.setTextFormat(timeDateFont);
74
    }
74
    }
75
   
75
   
76
    private function parseFormat(timeDateFormat:String): String {
76
    private function parseFormat(timeDateFormat:String): String {
77
        //TODO:
77
        //TODO:
78
        //fixa så escapeade tecken inte parsas om till tid/datum
78
        //fixa så escapeade tecken inte parsas om till tid/datum
79
        var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
79
        var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
80
        var shortDayOfWeek_array:Array = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
80
        var shortDayOfWeek_array:Array = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
81
        var month_array:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
81
        var month_array:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
82
        var shortMonth_array:Array = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
82
        var shortMonth_array:Array = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
83
        var daysInMonth_array:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
83
        var daysInMonth_array:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
84
       
84
       
85
        var today_date:Date = new Date();
85
        var today_date:Date = new Date();
86
        var dummyInt:Number = today_date.getDate();
86
        var dummyInt:Number = today_date.getDate();
87
        var date_d:String = "" + dummyInt;
87
        var date_d:String = "" + dummyInt;
88
        if (dummyInt < 10) {
88
        if (dummyInt < 10) {
89
            date_d = "0" + date_d;
89
            date_d = "0" + date_d;
90
        }
90
        }
91
 
91
 
92
        var date_D:String = shortDayOfWeek_array[today_date.getDay()];
92
        var date_D:String = shortDayOfWeek_array[today_date.getDay()];
93
        var date_j:String = "" + today_date.getDate();
93
        var date_j:String = "" + today_date.getDate();
94
        var date_l:String = dayOfWeek_array[today_date.getDay()];
94
        var date_l:String = dayOfWeek_array[today_date.getDay()];
95
       
95
       
96
        var date_N:String = "" + today_date.getDay();
96
        var date_N:String = "" + today_date.getDay();
97
        if (today_date.getDay() == 0) {
97
        if (today_date.getDay() == 0) {
98
            date_N = "7";
98
            date_N = "7";
99
        }
99
        }
100
       
100
       
101
        if (today_date.getDate() == 1 || today_date.getDate() == 21 || today_date.getDate() == 31) {
101
        if (today_date.getDate() == 1 || today_date.getDate() == 21 || today_date.getDate() == 31) {
102
            var date_S:String = "st";
102
            var date_S:String = "st";
103
        } else if (today_date.getDate() == 2 || today_date.getDate() == 22) {
103
        } else if (today_date.getDate() == 2 || today_date.getDate() == 22) {
104
            var date_S:String = "nd";
104
            var date_S:String = "nd";
105
        } else if (today_date.getDate() == 3 || today_date.getDate() == 23) {
105
        } else if (today_date.getDate() == 3 || today_date.getDate() == 23) {
106
            var date_S:String = "rd";
106
            var date_S:String = "rd";
107
        } else {
107
        } else {
108
            var date_S:String = "th";
108
            var date_S:String = "th";
109
        }
109
        }
110
       
110
       
111
        var date_w:String = "" + today_date.getDay();
111
        var date_w:String = "" + today_date.getDay();
112
        var date_F:String = month_array[today_date.getMonth()];
112
        var date_F:String = month_array[today_date.getMonth()];
113
       
113
       
114
        var dummyInt:Number = today_date.getMonth()+1;
114
        var dummyInt:Number = today_date.getMonth()+1;
115
        var date_m:String = "" + dummyInt;
115
        var date_m:String = "" + dummyInt;
116
        if (dummyInt < 10) {
116
        if (dummyInt < 10) {
117
            date_m = "0" + date_m;
117
            date_m = "0" + date_m;
118
        }
118
        }
119
       
119
       
120
        var date_M:String = shortMonth_array[today_date.getMonth()];
120
        var date_M:String = shortMonth_array[today_date.getMonth()];
121
        var date_n:String = "" + today_date.getMonth();
121
        var date_n:String = "" + today_date.getMonth();
122
        var date_t:String = daysInMonth_array[today_date.getMonth()];
122
        var date_t:String = daysInMonth_array[today_date.getMonth()];
123
        var date_Y:String = "" + today_date.getFullYear();
123
        var date_Y:String = "" + today_date.getFullYear();
124
        var date_y:String = date_Y.substr(2, 2);
124
        var date_y:String = date_Y.substr(2, 2);
125
       
125
       
126
        dummyInt = today_date.getHours();
126
        dummyInt = today_date.getHours();
127
        var date_a:String = (dummyInt<12) ? "am" : "pm";
127
        var date_a:String = (dummyInt<12) ? "am" : "pm";
128
        var date_A:String = (dummyInt<12) ? "AM" : "PM";
128
        var date_A:String = (dummyInt<12) ? "AM" : "PM";
129
 
129
 
130
    dummyInt = dummyInt%12;
130
    dummyInt = dummyInt%12;
131
    if (dummyInt == 0) {
131
    if (dummyInt == 0) {
132
        dummyInt = 12;
132
        dummyInt = 12;
133
    }
133
    }
134
        var date_g:String = "" + dummyInt;
134
        var date_g:String = "" + dummyInt;
135
        var date_G:String = "" + today_date.getHours();
135
        var date_G:String = "" + today_date.getHours();
136
        var date_h:String = "" + dummyInt;
136
        var date_h:String = "" + dummyInt;
137
        var date_H:String = "" + today_date.getHours();
137
        var date_H:String = "" + today_date.getHours();
138
        if (dummyInt < 10) {
138
        if (dummyInt < 10) {
139
            date_h = "0" + date_h;
139
            date_h = "0" + date_h;
140
        }
140
        }
141
        dummyInt = today_date.getHours();
141
        dummyInt = today_date.getHours();
142
        if (dummyInt < 10) {
142
        if (dummyInt < 10) {
143
            date_H = "0" + date_H;
143
            date_H = "0" + date_H;
144
        }
144
        }
145
       
145
       
146
        dummyInt = today_date.getMinutes();
146
        dummyInt = today_date.getMinutes();
147
        var date_i:String = "" + dummyInt;
147
        var date_i:String = "" + dummyInt;
148
        if (dummyInt < 10) {
148
        if (dummyInt < 10) {
149
            date_i = "0" + date_i;
149
            date_i = "0" + date_i;
150
        }
150
        }
151
        dummyInt = today_date.getSeconds();
151
        dummyInt = today_date.getSeconds();
152
        var date_s:String = "" + dummyInt;
152
        var date_s:String = "" + dummyInt;
153
        if (dummyInt < 10) {
153
        if (dummyInt < 10) {
154
            date_s = "0" + date_s;
154
            date_s = "0" + date_s;
155
        }
155
        }
156
       
156
       
157
        var dummyInt2:Number = dummyInt2.parseInt(today_date.valueOf()/1000)
157
        var dummyInt2:Number = dummyInt2.parseInt(today_date.valueOf()/1000)
158
        var date_U:String = "" + dummyInt;
158
        var date_U:String = "" + dummyInt;
159
       
159
       
160
        var returnstr:String = replace(timeDateFormat, "dd", date_d);
160
        var returnstr:String = replace(timeDateFormat, "dd", date_d);
161
        returnstr = replace(returnstr, "d", date_d);
161
        returnstr = replace(returnstr, "d", date_d);
162
        returnstr = replace(returnstr, "D", date_D);
162
        returnstr = replace(returnstr, "D", date_D);
163
        returnstr = replace(returnstr, "j", date_j);
163
        returnstr = replace(returnstr, "j", date_j);
164
        returnstr = replace(returnstr, "l", date_l);
164
        returnstr = replace(returnstr, "l", date_l);
165
        returnstr = replace(returnstr, "N", date_N);
165
        returnstr = replace(returnstr, "N", date_N);
166
        returnstr = replace(returnstr, "S", date_S);
166
        returnstr = replace(returnstr, "S", date_S);
167
        returnstr = replace(returnstr, "w", date_w);
167
        returnstr = replace(returnstr, "w", date_w);
168
        returnstr = replace(returnstr, "F", date_F);
168
        returnstr = replace(returnstr, "F", date_F);
169
        returnstr = replace(returnstr, "mm", date_m);
169
        returnstr = replace(returnstr, "mm", date_m);
170
        returnstr = replace(returnstr, "m", date_m);
170
        returnstr = replace(returnstr, "m", date_m);
171
        returnstr = replace(returnstr, "M", date_M);
171
        returnstr = replace(returnstr, "M", date_M);
172
        returnstr = replace(returnstr, "n", date_n);
172
        returnstr = replace(returnstr, "n", date_n);
173
        returnstr = replace(returnstr, "t", date_t);
173
        returnstr = replace(returnstr, "t", date_t);
174
        returnstr = replace(returnstr, "YYYY", date_Y);
174
        returnstr = replace(returnstr, "YYYY", date_Y);
175
        returnstr = replace(returnstr, "Y", date_Y);
175
        returnstr = replace(returnstr, "Y", date_Y);
176
        returnstr = replace(returnstr, "yy", date_y);
176
        returnstr = replace(returnstr, "yy", date_y);
177
        returnstr = replace(returnstr, "y", date_y);
177
        returnstr = replace(returnstr, "y", date_y);
178
        returnstr = replace(returnstr, "a", date_a);
178
        returnstr = replace(returnstr, "a", date_a);
179
        returnstr = replace(returnstr, "A", date_A);
179
        returnstr = replace(returnstr, "A", date_A);
180
        returnstr = replace(returnstr, "g", date_g);
180
        returnstr = replace(returnstr, "g", date_g);
181
        returnstr = replace(returnstr, "G", date_G);
181
        returnstr = replace(returnstr, "G", date_G);
182
        returnstr = replace(returnstr, "hh", date_h);
182
        returnstr = replace(returnstr, "hh", date_h);
183
        returnstr = replace(returnstr, "h", date_h);
183
        returnstr = replace(returnstr, "h", date_h);
184
        returnstr = replace(returnstr, "HH", date_H);
184
        returnstr = replace(returnstr, "HH", date_H);
185
        returnstr = replace(returnstr, "H", date_H);
185
        returnstr = replace(returnstr, "H", date_H);
186
        returnstr = replace(returnstr, "ii", date_i);
186
        returnstr = replace(returnstr, "ii", date_i);
187
        returnstr = replace(returnstr, "i", date_i);
187
        returnstr = replace(returnstr, "i", date_i);
188
        returnstr = replace(returnstr, "ss", date_s);
188
        returnstr = replace(returnstr, "ss", date_s);
189
        returnstr = replace(returnstr, "s", date_s);
189
        returnstr = replace(returnstr, "s", date_s);
190
        returnstr = replace(returnstr, "U", date_U);
190
        returnstr = replace(returnstr, "U", date_U);
191
//      returnstr = replace(returnstr, "", );
191
//      returnstr = replace(returnstr, "", );
192
 
192
 
193
        /*
193
        /*
194
    not implemented:
194
    not implemented:
195
    Timezone (e, I (capital i), O, T, Z)
195
    Timezone (e, I (capital i), O, T, Z)
196
    Full Date/Time (c, r)
196
    Full Date/Time (c, r)
197
    Anything with leap year (L, z)
197
    Anything with leap year (L, z)
198
    Week (W)
198
    Week (W)
199
    and o
199
    and o
200
        */
200
        */
201
   
201
   
202
        return returnstr;
202
        return returnstr;
203
    }
203
    }
204
   
204
   
205
    private function replace(holder:String, searchfor:String, replacement:String):String {
205
    private function replace(holder:String, searchfor:String, replacement:String):String {
206
        var temparray:Array = holder.split(searchfor);
206
        var temparray:Array = holder.split(searchfor);
207
        holder = temparray.join(replacement);
207
        holder = temparray.join(replacement);
208
        return (holder);
208
        return (holder);
209
    }
209
    }
210
   
210
   
211
    private function parseConfig(data:XMLNode): Array {
211
    private function parseConfig(data:XMLNode): Array {
212
        var confError:Number = -1;
212
        var confError:Number = -1;
213
        var confArr:Array = new Array();
213
        var confArr:Array = new Array();
214
        for (var bNode:XMLNode = data.firstChild; bNode != null && confError == -1; bNode=bNode.nextSibling) {
214
        for (var bNode:XMLNode = data.firstChild; bNode != null && confError == -1; bNode=bNode.nextSibling) {
215
            //trace(bNode.nodeName);
215
            //trace(bNode.nodeName);
216
            if (bNode.nodeName == "option") {
216
            if (bNode.nodeName == "option") {
217
                switch (bNode.attributes.name) {
217
                switch (bNode.attributes.name) {
218
                    case "font":
218
                    case "font":
219
                    if (bNode.attributes.value.length > 0) {   
219
                    if (bNode.attributes.value.length > 0) {   
220
                        confArr[1] = bNode.attributes.value;
220
                        confArr[1] = bNode.attributes.value;
221
                    } else {
221
                    } else {
222
                        confError = 1;
222
                        confError = 1;
223
                    }
223
                    }
224
                    break;
224
                    break;
225
                    case "left":
225
                    case "left":
226
                    if (parseFloat(bNode.attributes.value) >= 0) {
226
                    if (parseFloat(bNode.attributes.value) >= 0) {
227
                        confArr[2] = parseFloat(bNode.attributes.value) * Stage.width;
227
                        confArr[2] = parseFloat(bNode.attributes.value) * Stage.width;
228
                    } else {
228
                    } else {
229
                        confError = 2;
229
                        confError = 2;
230
                    }
230
                    }
231
                    break;
231
                    break;
232
                    case "top":
232
                    case "top":
233
                    if (parseFloat(bNode.attributes.value) >= 0) {
233
                    if (parseFloat(bNode.attributes.value) >= 0) {
234
                        confArr[3] = parseFloat(bNode.attributes.value) * Stage.height;
234
                        confArr[3] = parseFloat(bNode.attributes.value) * Stage.height;
235
                    } else {
235
                    } else {
236
                        confError = 3;
236
                        confError = 3;
237
                    }
237
                    }
238
                    break;
238
                    break;
239
                    case "width":
239
                    case "width":
240
                    if (parseFloat(bNode.attributes.value) >= 0) {
240
                    if (parseFloat(bNode.attributes.value) >= 0) {
241
                        confArr[4] = parseFloat(bNode.attributes.value) * Stage.width;
241
                        confArr[4] = parseFloat(bNode.attributes.value) * Stage.width;
242
                    } else {
242
                    } else {
243
                        confError = 4;
243
                        confError = 4;
244
                    }
244
                    }
245
                    break;
245
                    break;
246
                    case "height":
246
                    case "height":
247
                    if (parseFloat(bNode.attributes.value) >= 0) {
247
                    if (parseFloat(bNode.attributes.value) >= 0) {
248
                        confArr[5] = parseFloat(bNode.attributes.value) * Stage.height;
248
                        confArr[5] = parseFloat(bNode.attributes.value) * Stage.height;
249
                    } else {
249
                    } else {
250
                        confError = 5;
250
                        confError = 5;
251
                    }
251
                    }
252
                    break;
252
                    break;
253
                    case "fontcolor":
253
                    case "fontcolor":
254
                    if (parseInt(bNode.attributes.value) >= 0) {
254
                    if (parseInt(bNode.attributes.value) >= 0) {
255
                        confArr[6] = parseInt(bNode.attributes.value);
255
                        confArr[6] = parseInt(bNode.attributes.value);
256
                        //trace(confArr[6]);
256
                        //trace(confArr[6]);
257
                    } else {
257
                    } else {
258
                        confError = 6;
258
                        confError = 6;
259
                    }
259
                    }
260
                    break;
260
                    break;
261
                    case "format":
261
                    case "format":
262
                    if (bNode.attributes.value.length > 0) {
262
                    if (bNode.attributes.value.length > 0) {
263
                        confArr[7] = bNode.attributes.value;
263
                        confArr[7] = bNode.attributes.value;
264
                        //trace(confArr[6]);
264
                        //trace(confArr[6]);
265
                    } else {
265
                    } else {
266
                        confError = 7;
266
                        confError = 7;
267
                    }
267
                    }
268
                    break;
268
                    break;
269
                    case "rotation":
269
                    case "rotation":
270
                    if (parseInt(bNode.attributes.value) >= -180 && parseInt(bNode.attributes.value) <= 180) {
270
                    if (parseInt(bNode.attributes.value) >= -180 && parseInt(bNode.attributes.value) <= 180) {
271
                        confArr[8] = parseInt(bNode.attributes.value);
271
                        confArr[8] = parseInt(bNode.attributes.value);
272
                        //trace(confArr[6]);
272
                        //trace(confArr[6]);
273
                    } else {
273
                    } else {
274
                        confError = 8;
274
                        confError = 8;
275
                    }
275
                    }
276
                    break;
276
                    break;
277
               
277
               
278
                }
278
                }
279
            }
279
            }
280
        }
280
        }
281
        confArr[0] = confError;
281
        confArr[0] = confError;
282
        return confArr;
282
        return confArr;
283
    }
283
    }
284
   
284
   
285
}
285
}