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
/*
1
/*
2
BUGGAR
2
BUGGAR
3
stor description: hackar när den beräknas?
3
stor description: hackar när den beräknas?
4
width på timedateobjekt används nog inte nu
4
width på timedateobjekt används nog inte nu
5
 
5
 
6
MISSTÄNKTA BUGGAR
6
MISSTÄNKTA BUGGAR
7
 
7
 
8
ATT GÖRA
8
ATT GÖRA
9
konfig för flinsh
9
konfig för flinsh
10
    vilken server:port skall anropas
10
    vilken server:port skall anropas
11
    färg/form/ram på markerat objekt
11
    färg/form/ram på markerat objekt
12
kommentera/dokumentera
12
kommentera/dokumentera
13
cacheasbitmap för bakgrundsbild? bakgrundsbilden ska fixas om helt
13
cacheasbitmap för bakgrundsbild? bakgrundsbilden ska fixas om helt
14
menyobjektet skall stödja fade (sätt _alpha för alles till ett parametervärde), ska kunna användas när en meny skall hamna över en annan, den undre skall fadea
14
menyobjektet skall stödja fade (sätt _alpha för alles till ett parametervärde), ska kunna användas när en meny skall hamna över en annan, den undre skall fadea
15
menyobjektet skall stödja inga animationer (specas i menuconfig) (jimmys önskan)
15
menyobjektet skall stödja inga animationer (specas i menuconfig) (jimmys önskan)
16
menykonfigparser skall göras om, parsa in allt, sen testa
16
menykonfigparser skall göras om, parsa in allt, sen testa
17
 
17
 
18
gör om alla felmeddelanden i config, så den lagrar ett meddelande istället för en siffra
18
gör om alla felmeddelanden i config, så den lagrar ett meddelande istället för en siffra
19
 
19
 
20
 
20
 
21
ett objekt som scrollats ut har properties:
21
ett objekt som scrollats ut har properties:
22
height=0
22
height=0
23
alpha=0
23
alpha=0
24
inuse=false (=>visible=false)
24
inuse=false (=>visible=false)
25
 
25
 
26
*/
26
*/
27
 
27
 
28
 
28
 
29
import mx.transitions.Tween;
29
import mx.transitions.Tween;
30
import mx.utils.Delegate;
30
import mx.utils.Delegate;
31
 
31
 
32
class MenuObj implements CommunicatorIF {
32
class MenuObj implements CommunicatorIF {
33
 
33
 
34
    //screen position and size
34
    //screen position and size
35
    private var menuTop:Number;
35
    private var menuTop:Number;
36
    private var menuLeft:Number;
36
    private var menuLeft:Number;
37
    private var menuWidth:Number;
37
    private var menuWidth:Number;
38
    private var menuHeight:Number;
38
    private var menuHeight:Number;
39
   
39
   
40
    private var menuName:String;
40
    private var menuName:String;
41
   
41
   
42
    //to each rowitem belongs a menuTexts, this is the one that animates up/down and resizes
42
    //to each rowitem belongs a menuTexts, this is the one that animates up/down and resizes
43
    private var menuTexts:Array = new Array();
43
    private var menuTexts:Array = new Array();
44
   
44
   
45
    //the maximum number of items or rows that is visible, one extra row/item exist in menuText for the row that should scroll in
45
    //the maximum number of items or rows that is visible, one extra row/item exist in menuText for the row that should scroll in
46
    private var nrOfMenuItem:Number;
46
    private var nrOfMenuItem:Number;
47
    //the position of the item that is marked and show description
47
    //the position of the item that is marked and show description
48
    private var middleItemPosition:Number;
48
    private var middleItemPosition:Number;
49
    //dataList-index of the object that is placed in middleItemPosition
49
    //dataList-index of the object that is placed in middleItemPosition
50
    private var menuMiddleItem:Number=0;
50
    private var menuMiddleItem:Number=0;
51
    //data to list on the menu, title and description
51
    //data to list on the menu, title and description
52
    //private var dataList:XMLNode;
52
    //private var dataList:XMLNode;
53
    private var menuData:Array = new Array();
53
    private var menuData:Array = new Array();
54
   
54
   
55
    //object to handle the description of the menuMiddleItem
55
    //object to handle the description of the menuMiddleItem
56
    private var menuItemDesc:MenuDescObj;
56
    private var menuItemDesc:MenuDescObj;
57
   
57
   
58
    //delaytime is time before speeding up to repeattime (first scroll last delaytime and following scroll is repeattime)
58
    //delaytime is time before speeding up to repeattime (first scroll last delaytime and following scroll is repeattime)
59
    private var scrollDelayTime:Number;
59
    private var scrollDelayTime:Number;
60
    private var scrollRepeatTime:Number;
60
    private var scrollRepeatTime:Number;
61
    //time for description to fade in
61
    //time for description to fade in
62
    private var descScrollTime:Number;
62
    private var descScrollTime:Number;
63
   
63
   
64
    //placeholders, makes it easy to place and move menuTexts
64
    //placeholders, makes it easy to place and move menuTexts
65
    private var placeHolder:Array = new Array();
65
    private var placeHolder:Array = new Array();
66
   
66
   
67
    private var moveTween:Tween;
67
    private var moveTween:Tween;
68
   
68
   
69
    private var tweenCommand:Number = 0;
69
    private var tweenCommand:Number = 0;
70
        //0 = stop
70
        //0 = stop
71
        //1 = scrollup
71
        //1 = scrollup
72
        //2 = scrolldown
72
        //2 = scrolldown
73
   
73
   
74
    private var commObj:CommunicationObj;  
74
    private var commObj:CommunicationObj;  
75
   
75
   
76
    private var newDataExists:Boolean;
76
    private var newDataExists:Boolean;
77
    private var newData:XMLNode;
77
    private var newData:XMLNode;
78
   
78
   
79
    private var isScrolling = false;
79
    private var isScrolling = false;
80
   
80
   
81
    private var incomDataArr:Array = new Array();
81
    private var incomDataArr:Array = new Array();
82
    /*
82
    /*
83
    lista här alla delar av configen
83
    lista här alla delar av configen
84
    index   name                            description
84
    index   name                            description
85
    1           menuname                   
85
    1           menuname                   
86
    2           menudescription    
86
    2           menudescription    
87
    3           rowitemfont            
87
    3           rowitemfont            
88
    4           descriptionfont    
88
    4           descriptionfont    
89
    5           left                            horizontal placing of this menu
89
    5           left                            horizontal placing of this menu
90
    6           top                             vertical placing of this menu
90
    6           top                             vertical placing of this menu
91
    7           width                           horizontal size of this menu, text will be cut if longer than this
91
    7           width                           horizontal size of this menu, text will be cut if longer than this
92
    8           height                      vertical size of this menu
92
    8           height                      vertical size of this menu
93
    9           menurowitems           
93
    9           menurowitems           
94
    10      sizedrowitems          
94
    10      sizedrowitems          
95
    11      scrolldelaytime    
95
    11      scrolldelaytime    
96
    12      scrollrepeattime   
96
    12      scrollrepeattime   
97
    13      menucolor
97
    13      menucolor
98
    14      desccolor
98
    14      desccolor
99
    15      descscrolltime      the description fade-in-time
99
    15      descscrolltime      the description fade-in-time
100
    16     
100
    16     
101
    17     
101
    17     
102
    */
102
    */
103
 
103
 
104
    /**
104
    /**
105
    * Creates a new instance of MenuObj.
105
    * Creates a new instance of MenuObj.
106
    * @param mainScene Reference to the main MovieClip.
106
    * @param mainScene Reference to the main MovieClip.
107
    * @param configArr This is configuration data, like looks and timeing, for this menu.
107
    * @param configArr This is configuration data, like looks and timeing, for this menu.
108
    */
108
    */
109
    function MenuObj (mainScene:MovieClip, configXML:XMLNode) {
109
    function MenuObj (mainScene:MovieClip, configXML:XMLNode) {
110
        //anropa parseConfig(configXML), den returnerar en array där index 0 är ett nummer, -1 om datan är ok, annars ett unikt nummer för varje fel
110
        //anropa parseConfig(configXML), den returnerar en array där index 0 är ett nummer, -1 om datan är ok, annars ett unikt nummer för varje fel
111
        // om datan inte parsades okej skall inget av nedanstående köras
111
        // om datan inte parsades okej skall inget av nedanstående köras
112
        //en global variabel skall inte sättas och anropande rutin skall kolla denna flagga, om den inte är satt så bör den signalera fel
112
        //en global variabel skall inte sättas och anropande rutin skall kolla denna flagga, om den inte är satt så bör den signalera fel
113
 
113
 
114
        var configArr:Array = parseConfig(configXML);
114
        var configArr:Array = parseConfig(configXML);
115
        if (configArr[0] > -1) {
115
        if (configArr[0] > -1) {
116
            trace("Config error: " + configArr[0]);
116
            trace("Config error: " + configArr[0]);
117
        } else {
117
        } else {
118
            var menuFont:TextFormat = new TextFormat();
118
            var menuFont:TextFormat = new TextFormat();
119
            var descFont:TextFormat = new TextFormat();
119
            var descFont:TextFormat = new TextFormat();
120
           
120
           
121
            menuName = configArr[1];
121
            menuName = configArr[1];
122
           
122
           
123
            menuFont.font = configArr[3];
123
            menuFont.font = configArr[3];
124
            menuFont.color = configArr[13];
124
            menuFont.color = configArr[13];
125
            descFont.font = configArr[4];
125
            descFont.font = configArr[4];
126
            descFont.color = configArr[14];
126
            descFont.color = configArr[14];
127
            descScrollTime = configArr[15];
127
            descScrollTime = configArr[15];
128
           
128
           
129
            menuLeft = configArr[5];
129
            menuLeft = configArr[5];
130
            menuTop = configArr[6];
130
            menuTop = configArr[6];
131
            menuWidth = configArr[7];
131
            menuWidth = configArr[7];
132
            menuHeight = configArr[8];
132
            menuHeight = configArr[8];
133
            nrOfMenuItem = configArr[9];
133
            nrOfMenuItem = configArr[9];
134
            var itemsToSize:Number = configArr[10];
134
            var itemsToSize:Number = configArr[10];
135
            scrollDelayTime = configArr[11];
135
            scrollDelayTime = configArr[11];
136
            scrollRepeatTime = configArr[12];
136
            scrollRepeatTime = configArr[12];
137
            // = configArr[13];
137
            // = configArr[13];
138
            // = configArr[14];
138
            // = configArr[14];
139
            // = configArr[15];
139
            // = configArr[15];
140
            // = configArr[16];
140
            // = configArr[16];
141
   
141
   
142
            middleItemPosition = itemsToSize + 1; //TODO detta måste kontrolleras så itemsToSize är bra i förhållande till nrOfMenuItem
142
            middleItemPosition = itemsToSize + 1; //TODO detta måste kontrolleras så itemsToSize är bra i förhållande till nrOfMenuItem
143
           
143
           
144
           
144
           
145
            //menuFont.size = 16;           //ska inte behöva sättas, men det är så inte den som anropar menuobj har pillat på den
145
            //menuFont.size = 16;           //ska inte behöva sättas, men det är så inte den som anropar menuobj har pillat på den
146
           
146
           
147
            //
147
            //
148
            //define the placeholders, give them their y-position and height
148
            //define the placeholders, give them their y-position and height
149
            //
149
            //
150
            var heightFactor:Number = 1.2;      //1.2;
150
            var heightFactor:Number = 1.2;      //1.2;
151
            //var heightFactorMiddle:Number = 1.2;  
151
            //var heightFactorMiddle:Number = 1.2;  
152
            var heightDivider:Number = 0;
152
            var heightDivider:Number = 0;
153
            for (var i:Number=0; i<nrOfMenuItem; i++) {
153
            for (var i:Number=0; i<nrOfMenuItem; i++) {
154
                if (i<itemsToSize) {
154
                if (i<itemsToSize) {
155
                    heightDivider = heightDivider + i + 1;
155
                    heightDivider = heightDivider + i + 1;
156
                } else if (i>nrOfMenuItem-itemsToSize-1) {
156
                } else if (i>nrOfMenuItem-itemsToSize-1) {
157
                    heightDivider = heightDivider + (nrOfMenuItem - i);
157
                    heightDivider = heightDivider + (nrOfMenuItem - i);
158
            //  } else if (i==itemsToSize+1) {                                                      /
158
            //  } else if (i==itemsToSize+1) {                                                      /
159
            //      heightDivider = heightDivider + (itemsToSize + 1)*heightFactorMiddle;
159
            //      heightDivider = heightDivider + (itemsToSize + 1)*heightFactorMiddle;
160
                } else {
160
                } else {
161
                    heightDivider = heightDivider + (itemsToSize + 1);
161
                    heightDivider = heightDivider + (itemsToSize + 1);
162
                }
162
                }
163
            }
163
            }
164
            var unitSize = menuHeight / heightDivider;
164
            var unitSize = menuHeight / heightDivider;
165
            //unitsize borde sparas globalt
165
            //unitsize borde sparas globalt
166
            for (var i:Number=0; i<nrOfMenuItem; i++) {
166
            for (var i:Number=0; i<nrOfMenuItem; i++) {
167
                if (i==0) {
167
                if (i==0) {
168
                    placeHolder[i] = new PlaceHolderObj(menuTop, unitSize*(i+1)*heightFactor);
168
                    placeHolder[i] = new PlaceHolderObj(menuTop, unitSize*(i+1)*heightFactor);
169
                } else if (i<itemsToSize) {
169
                } else if (i<itemsToSize) {
170
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(i+1)*heightFactor);
170
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(i+1)*heightFactor);
171
                } else if (i>nrOfMenuItem-itemsToSize-1) {
171
                } else if (i>nrOfMenuItem-itemsToSize-1) {
172
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(nrOfMenuItem - i)*heightFactor);
172
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(nrOfMenuItem - i)*heightFactor);
173
            //  } else if (i==itemsToSize+1) {                                                      //TODO !! kolla så detta kan uppfyllas! itemsToSize måste kontrolleras ordentligt
173
            //  } else if (i==itemsToSize+1) {                                                      //TODO !! kolla så detta kan uppfyllas! itemsToSize måste kontrolleras ordentligt
174
            //      placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(itemsToSize+1)*heightFactorMiddle*heightFactor);
174
            //      placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*(itemsToSize+1)*heightFactorMiddle*heightFactor);
175
                } else {
175
                } else {
176
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*middleItemPosition*heightFactor);
176
                    placeHolder[i] = new PlaceHolderObj(placeHolder[i-1].top+placeHolder[i-1].height/heightFactor, unitSize*middleItemPosition*heightFactor);
177
                }
177
                }
178
            }  
178
            }  
179
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
179
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
180
                menuTexts[i] = new MenuItemObj(mainScene, menuFont, menuLeft, menuWidth, unitSize*middleItemPosition);
180
                menuTexts[i] = new MenuItemObj(mainScene, menuFont, menuLeft, menuWidth, unitSize*middleItemPosition);
181
            }
181
            }
182
 
182
 
183
            //description skall placeras under det "valda" objektet (dess top+height)
183
            //description skall placeras under det "valda" objektet (dess top+height)
184
            var dummytop:Number = placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height;
184
            var dummytop:Number = placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height;
185
            //den skall maximalt sträcka sig ner till det näst sista objektet med "normal" storlek
185
            //den skall maximalt sträcka sig ner till det näst sista objektet med "normal" storlek
186
            var dummymaxheight:Number = placeHolder[nrOfMenuItem - middleItemPosition-1].top+placeHolder[nrOfMenuItem - middleItemPosition-1].height - dummytop;
186
            var dummymaxheight:Number = placeHolder[nrOfMenuItem - middleItemPosition-1].top+placeHolder[nrOfMenuItem - middleItemPosition-1].height - dummytop;
187
            menuItemDesc = new MenuDescObj(mainScene, descFont, descScrollTime, menuLeft+menuWidth/15, menuWidth-menuWidth/15, dummytop, dummymaxheight,unitSize*middleItemPosition*3/4);
187
            menuItemDesc = new MenuDescObj(mainScene, descFont, descScrollTime, menuLeft+menuWidth/15, menuWidth-menuWidth/15, dummytop, dummymaxheight,unitSize*middleItemPosition*3/4);
188
            //unitSize*middleItemPosition*3/4 avgör storleken på texten för description, *3/4 = tre fjärdedelar så stor som en normal menuitem
188
            //unitSize*middleItemPosition*3/4 avgör storleken på texten för description, *3/4 = tre fjärdedelar så stor som en normal menuitem
189
   
189
   
190
           
190
           
191
            /*var testItem2:MovieClip = mainScene.createEmptyMovieClip("testItem2",mainScene.getNextHighestDepth());
191
            /*var testItem2:MovieClip = mainScene.createEmptyMovieClip("testItem2",mainScene.getNextHighestDepth());
192
            testItem2.beginFill(0x229922, 50);
192
            testItem2.beginFill(0x229922, 50);
193
            testItem2.moveTo(menuLeft,dummytop)
193
            testItem2.moveTo(menuLeft,dummytop)
194
            testItem2.lineTo(menuLeft+menuWidth,dummytop)
194
            testItem2.lineTo(menuLeft+menuWidth,dummytop)
195
            testItem2.lineTo(menuLeft+menuWidth,dummymaxheight+dummytop)
195
            testItem2.lineTo(menuLeft+menuWidth,dummymaxheight+dummytop)
196
            testItem2.lineTo(menuLeft,dummymaxheight+dummytop)
196
            testItem2.lineTo(menuLeft,dummymaxheight+dummytop)
197
            testItem2.endFill();*/ 
197
            testItem2.endFill();*/ 
198
   
198
   
199
        //bara tillfälligt så man ser hur ytan man har att jobba med ser ut
199
        //bara tillfälligt så man ser hur ytan man har att jobba med ser ut
200
        //markerar nu mittitemet
200
        //markerar nu mittitemet
201
            var testItem:MovieClip = mainScene.createEmptyMovieClip("testItem",mainScene.getNextHighestDepth());
201
            var testItem:MovieClip = mainScene.createEmptyMovieClip("testItem",mainScene.getNextHighestDepth());
202
            //testItem.beginFill(0x883333, 40);
202
            //testItem.beginFill(0x883333, 40);
203
            testItem.lineStyle(5, 0x0, 45, false, "none", "round", "round");
203
            testItem.lineStyle(5, 0x0, 45, false, "none", "round", "round");
204
            testItem.moveTo(menuLeft,placeHolder[middleItemPosition].top)
204
            testItem.moveTo(menuLeft,placeHolder[middleItemPosition].top)
205
            testItem.lineTo(menuLeft+menuWidth,placeHolder[middleItemPosition].top)
205
            testItem.lineTo(menuLeft+menuWidth,placeHolder[middleItemPosition].top)
206
            testItem.lineTo(menuLeft+menuWidth,placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height)
206
            testItem.lineTo(menuLeft+menuWidth,placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height)
207
            testItem.lineTo(menuLeft,placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height)
207
            testItem.lineTo(menuLeft,placeHolder[middleItemPosition].top+placeHolder[middleItemPosition].height)
208
            //testItem.endFill();
208
            //testItem.endFill();
209
            testItem.lineTo(menuLeft,placeHolder[middleItemPosition].top)
209
            testItem.lineTo(menuLeft,placeHolder[middleItemPosition].top)
210
       
210
       
211
        }
211
        }
212
 
212
 
213
    }       //end constructor
213
    }       //end constructor
214
   
214
   
215
    function getName():String {
215
    function getName():String {
216
        return menuName;
216
        return menuName;
217
    }
217
    }
218
   
218
   
219
    public function setCommunicator(commObj:CommunicationObj):Void {
219
    public function setCommunicator(commObj:CommunicationObj):Void {
220
        //trace(commObj);
220
        //trace(commObj);
221
        this.commObj = commObj;
221
        this.commObj = commObj;
222
    }
222
    }
223
   
223
   
224
    private function sendData(data:XML) {
224
    private function sendData(data:XML) {
225
        //använd commobj som fåtts med setcommunicator ovan, testa om den finns först
225
        //använd commobj som fåtts med setcommunicator ovan, testa om den finns först
226
        //trace(commObj);
226
        //trace(commObj);
227
        if (commObj != undefined) {
227
        if (commObj != undefined) {
228
            commObj.sendToServer(data);
228
            commObj.sendToServer(data);
229
        }
229
        }
230
    }
230
    }
231
   
231
   
232
    public function showHide (isVisible:Boolean) :Void {
232
    public function showHide (isVisible:Boolean) :Void {
233
        for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
233
        for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
234
            menuTexts[i].visible(isVisible);
234
            menuTexts[i].visible(isVisible);
235
        }
235
        }
236
        menuItemDesc.visible(isVisible);
236
        menuItemDesc.visible(isVisible);
237
    }
237
    }
238
   
238
   
239
    public function setNewData (data:XMLNode) :Void {
239
    public function setNewData (data:XMLNode) :Void {
240
        //trace(data);
240
        //trace(data);
241
        //trace("duration: " + moveTween.duration + " finish: " + moveTween.finish + " FPS: " + moveTween.FPS + " position: " + moveTween.position + " time: " + moveTween.time);
241
        //trace("duration: " + moveTween.duration + " finish: " + moveTween.finish + " FPS: " + moveTween.FPS + " position: " + moveTween.position + " time: " + moveTween.time);
242
 
242
 
243
        //trace(data.nodeName);
243
        //trace(data.nodeName);
244
       
244
       
245
        if (incomDataArr.length > 0) {
245
        if (incomDataArr.length > 0) {
246
            incomDataArr.push(data);
246
            incomDataArr.push(data);
247
        } else {
247
        } else {
248
            if (data.nodeName == "command") {
248
            if (data.nodeName == "command") {
249
                parseCommand(data);
249
                parseCommand(data);
250
            } else if (data.nodeName == "data") {
250
            } else if (data.nodeName == "data") {
251
                if (!isScrolling) {
251
                if (!isScrolling) {
252
                    parseMenuData(data);
252
                    parseMenuData(data);
253
                } else {
253
                } else {
254
                    incomDataArr.push(data);
254
                    incomDataArr.push(data);
255
                }
255
                }
256
            }
256
            }
257
        }
257
        }
258
    }
258
    }
259
   
259
   
260
    private function popData () {
260
    private function popData () {
261
        var whileCmd:Boolean = true;
261
        var whileCmd:Boolean = true;
262
       
262
       
263
       
263
       
264
        while (whileCmd && incomDataArr.length > 0) {
264
        while (whileCmd && incomDataArr.length > 0) {
265
            trace("array size: " + incomDataArr.length);
265
            trace("array size: " + incomDataArr.length);
266
            var shifted:Object = incomDataArr.shift();
266
            var shifted:Object = incomDataArr.shift();
267
            trace("parsar data, nodenamn: " + shifted.nodeName);
267
            trace("parsar data, nodenamn: " + shifted.nodeName);
268
            if (shifted.nodeName == "data") {
268
            if (shifted.nodeName == "data") {
269
                //shifted = incomDataArr.shift();
269
                //shifted = incomDataArr.shift();
270
                parseMenuData(shifted);
270
                parseMenuData(shifted);
271
                trace("skickat till menudataparsning");
271
                trace("skickat till menudataparsning");
272
            } else if (shifted.nodeName == "command") {
272
            } else if (shifted.nodeName == "command") {
273
                //whileCmd = false;
273
                //whileCmd = false;
274
                //trace("avsluta dataparsning");
274
                //trace("avsluta dataparsning");
275
                trace("kastar kommandon");
275
                trace("kastar kommandon");
276
 
276
 
277
            }
277
            }
278
        }
278
        }
279
       
279
       
280
        /*
280
        /*
281
        //parsa data tills kommando kommer
281
        //parsa data tills kommando kommer
282
        while (whileCmd && incomDataArr.length > 0) {
282
        while (whileCmd && incomDataArr.length > 0) {
283
            var shifted:Object = incomDataArr[0];
283
            var shifted:Object = incomDataArr[0];
284
            trace("parsar data, nodenamn: " + shifted.nodeName);
284
            trace("parsar data, nodenamn: " + shifted.nodeName);
285
            if (shifted.nodeName == "data") {
285
            if (shifted.nodeName == "data") {
286
                shifted = incomDataArr.shift();
286
                shifted = incomDataArr.shift();
287
                parseMenuData(shifted);
287
                parseMenuData(shifted);
288
                trace("skickat till menudataparsning");
288
                trace("skickat till menudataparsning");
289
            } else if (shifted.nodeName == "command") {
289
            } else if (shifted.nodeName == "command") {
290
                whileCmd = false;
290
                whileCmd = false;
291
                trace("avsluta dataparsning");
291
                trace("avsluta dataparsning");
292
 
292
 
293
            }
293
            }
294
        }
294
        }
295
       
295
       
296
        whileCmd = true;
296
        whileCmd = true;
297
        trace("array size: " + incomDataArr.length);
297
        trace("array size: " + incomDataArr.length);
298
 
298
 
299
        //sen parsas kommando tills data kommer
299
        //sen parsas kommando tills data kommer
300
        while (whileCmd && incomDataArr.length > 0) {
300
        while (whileCmd && incomDataArr.length > 0) {
301
            var shifted:Object = incomDataArr[0];
301
            var shifted:Object = incomDataArr[0];
302
            trace("parsar kommando, nodenamn: " + shifted.nodeName);
302
            trace("parsar kommando, nodenamn: " + shifted.nodeName);
303
           
303
           
304
            if (shifted.nodeName == "command") {
304
            if (shifted.nodeName == "command") {
305
                shifted = incomDataArr.shift();
305
                shifted = incomDataArr.shift();
306
                //parseCommand(shifted);
306
                //parseCommand(shifted);
307
                trace("skickat till kommandoparsning");
307
                trace("skickat till kommandoparsning");
308
            } else if (shifted.nodeName == "data") {
308
            } else if (shifted.nodeName == "data") {
309
                whileCmd = false;
309
                whileCmd = false;
310
                trace("avsluta kommandoparsning");
310
                trace("avsluta kommandoparsning");
311
            }
311
            }
312
        }*/
312
        }*/
313
       
313
       
314
    }
314
    }
315
   
315
   
316
    private function parseCommand (data:Object) {
316
    private function parseCommand (data:Object) {
317
        if (data.nodeName == "command") {
317
        if (data.nodeName == "command") {
318
            if (data.firstChild.nodeName == "scroll") {
318
            if (data.firstChild.nodeName == "scroll") {
319
                if (data.firstChild.firstChild.nodeValue == 0) {
319
                if (data.firstChild.firstChild.nodeValue == 0) {
320
                    scrollStop();
320
                    scrollStop();
321
                } else if (data.firstChild.firstChild.nodeValue == 1) {
321
                } else if (data.firstChild.firstChild.nodeValue == 1) {
322
                    scrollUp();
322
                    scrollUp();
323
                } else if (data.firstChild.firstChild.nodeValue == -1) {
323
                } else if (data.firstChild.firstChild.nodeValue == -1) {
324
                    scrollDown();
324
                    scrollDown();
325
                }
325
                }
326
            }
326
            }
327
        }
327
        }
328
    }
328
    }
329
       
329
       
330
    private function parseMenuData (data:Object) {
330
    private function parseMenuData (data:Object) {
331
        if (data.nodeName == "data") {
331
        if (data.nodeName == "data") {
332
       
332
       
333
        //för tillfället, strunta i att uppdatera med ny data om man håller på att scrolla
333
        //för tillfället, strunta i att uppdatera med ny data om man håller på att scrolla
334
        //prio på att fixa detta
334
        //prio på att fixa detta
335
        //detta funkar någorlunda, kanske ha en lista med data som läses in här
335
        //detta funkar någorlunda, kanske ha en lista med data som läses in här
336
        //då man läst in data kollar man om listan är tom, annars får man läsa in igen
336
        //då man läst in data kollar man om listan är tom, annars får man läsa in igen
337
            //if (!(moveTween.time == undefined || moveTween.time == moveTween.duration)) {
337
            //if (!(moveTween.time == undefined || moveTween.time == moveTween.duration)) {
338
            //  newDataExists = true;
338
            //  newDataExists = true;
339
            //  newData = data;
339
            //  newData = data;
340
            if (false) {} else {
340
            if (false) {} else {
341
                menuItemDesc.hide();
341
                menuItemDesc.hide();
342
               
342
               
343
                var middleItem:Number = 0;
343
                var middleItem:Number = 0;
344
                var middleItemId:String = "";
344
                var middleItemId:String = "";
345
                var dataList:XMLNode;
345
                var dataList:XMLNode;
346
               
346
               
347
                //trace(data);
347
                //trace(data);
348
                for (var aNode:XMLNode = data.firstChild; aNode != null; aNode=aNode.nextSibling) {
348
                for (var aNode:XMLNode = data.firstChild; aNode != null; aNode=aNode.nextSibling) {
349
                    //trace(aNode);
349
                    //trace(aNode);
350
                   
350
                   
351
                    if (aNode.nodeName == "middleid") {
351
                    if (aNode.nodeName == "middleid") {
352
                        //trace("middle: " + aNode); 
352
                        //trace("middle: " + aNode); 
353
                        middleItemId = aNode.firstChild.nodeValue;
353
                        middleItemId = aNode.firstChild.nodeValue;
354
                        //trace(middleItemId); 
354
                        //trace(middleItemId); 
355
                    }
355
                    }
356
                    if (aNode.nodeName == "list") {
356
                    if (aNode.nodeName == "list") {
357
                        //trace("listan: " + aNode); 
357
                        //trace("listan: " + aNode); 
358
                        dataList = aNode;
358
                        dataList = aNode;
359
                    }
359
                    }
360
                }
360
                }
361
                if (dataList != null) {
361
                if (dataList != null) {
362
                    menuData = new Array();
362
                    menuData = new Array();
363
                    var cnt:Number = 0;
363
                    var cnt:Number = 0;
364
                    for (var aNode:XMLNode = dataList.firstChild; aNode != null; aNode=aNode.nextSibling) {
364
                    for (var aNode:XMLNode = dataList.firstChild; aNode != null; aNode=aNode.nextSibling) {
365
                        //trace("nästa child: " + aNode);
365
                        //trace("nästa child: " + aNode);
366
                        var title:String = "";
366
                        var title:String = "";
367
                        var description:String = "";
367
                        var description:String = "";
368
                        var id:String = "";
368
                        var id:String = "";
369
                        title = aNode.attributes.title;
369
                        title = aNode.attributes.title;
370
                        description = aNode.attributes.desc;
370
                        description = aNode.attributes.desc;
371
                        id = aNode.attributes.id;
371
                        id = aNode.attributes.id;
372
                       
372
                       
373
                        if (id == middleItemId) {
373
                        if (id == middleItemId) {
374
                            middleItem = cnt;
374
                            middleItem = cnt;
375
                        }
375
                        }
376
                       
376
                       
377
                        //trace(id);
377
                        //trace(id);
378
                        //trace(title);
378
                        //trace(title);
379
                        //trace(description);
379
                        //trace(description);
380
                       
380
                       
381
                        /*for (var bNode:XMLNode = aNode.firstChild; bNode != null; bNode=bNode.nextSibling) {
381
                        /*for (var bNode:XMLNode = aNode.firstChild; bNode != null; bNode=bNode.nextSibling) {
382
                                //trace("nytt" + bNode.nodeName);
382
                                //trace("nytt" + bNode.nodeName);
383
                            if (bNode.nodeName == "title") {
383
                            if (bNode.nodeName == "title") {
384
                                if (bNode.firstChild.nodeValue != undefined) {
384
                                if (bNode.firstChild.nodeValue != undefined) {
385
                                    title = bNode.firstChild.nodeValue;
385
                                    title = bNode.firstChild.nodeValue;
386
                                } else {
386
                                } else {
387
                                    title = "";
387
                                    title = "";
388
                                }
388
                                }
389
                            } else if (bNode.nodeName == "description") {
389
                            } else if (bNode.nodeName == "description") {
390
                                if (bNode.firstChild.nodeValue != undefined) {
390
                                if (bNode.firstChild.nodeValue != undefined) {
391
                                    description = bNode.firstChild.nodeValue;
391
                                    description = bNode.firstChild.nodeValue;
392
                                } else {
392
                                } else {
393
                                    description = "";
393
                                    description = "";
394
                                }
394
                                }
395
                            } else if (bNode.nodeName == "id") {
395
                            } else if (bNode.nodeName == "id") {
396
                                if (bNode.firstChild.nodeValue != undefined) {
396
                                if (bNode.firstChild.nodeValue != undefined) {
397
                                    id = bNode.firstChild.nodeValue;
397
                                    id = bNode.firstChild.nodeValue;
398
                                    //trace("inkommande id: " + id + " cnt2:");
398
                                    //trace("inkommande id: " + id + " cnt2:");
399
                                    if (id == middleItemId) {
399
                                    if (id == middleItemId) {
400
                                        middleItem = cnt;
400
                                        middleItem = cnt;
401
                                    }
401
                                    }
402
                                } else {
402
                                } else {
403
                                    id = "";
403
                                    id = "";
404
                                }
404
                                }
405
                            }
405
                            }
406
                            //trace("nästa child: " + bNode);
406
                            //trace("nästa child: " + bNode);
407
                        }*/
407
                        }*/
408
                        menuData[cnt] = new MenuDataObj(id, title, description);
408
                        menuData[cnt] = new MenuDataObj(id, title, description);
409
                        //trace(menuData[cnt].description);
409
                        //trace(menuData[cnt].description);
410
                        cnt++;
410
                        cnt++;
411
                    }
411
                    }
412
                }
412
                }
413
   
413
   
414
                //trace(menuTexts.length);
414
                //trace(menuTexts.length);
415
                for (var i:Number = 0; i < menuTexts.length; i++) {
415
                for (var i:Number = 0; i < menuTexts.length; i++) {
416
                    //menuTexts[i].setText("");
416
                    //menuTexts[i].setText("");
417
                    menuTexts[i].setFree(true);
417
                    menuTexts[i].setFree(true);
418
                    menuTexts[i].notInUse();
418
                    menuTexts[i].notInUse();
419
                    menuTexts[i].visible(true);     //göm alla items (inuse är false därmed göms de när man anropa visible)
419
                    menuTexts[i].visible(true);     //göm alla items (inuse är false därmed göms de när man anropa visible)
420
                    menuTexts[i].setAlpha(100);
420
                    menuTexts[i].setAlpha(100);
421
                }
421
                }
422
               
422
               
423
                //dataList = data;                          //save global
423
                //dataList = data;                          //save global
424
                menuMiddleItem = middleItem;    //save global
424
                menuMiddleItem = middleItem;    //save global
425
               
425
               
426
                var menuItemCnt:Number = 0;
426
                var menuItemCnt:Number = 0;
427
                for (var i:Number = middleItem-middleItemPosition; i<middleItem+nrOfMenuItem-middleItemPosition; i++) {
427
                for (var i:Number = middleItem-middleItemPosition; i<middleItem+nrOfMenuItem-middleItemPosition; i++) {
428
                    if (i<0) {
428
                    if (i<0) {
429
                        if (menuData.length > nrOfMenuItem) {
429
                        if (menuData.length > nrOfMenuItem) {
430
                            menuTexts[menuItemCnt].setText(menuData[menuData.length + i].title);
430
                            menuTexts[menuItemCnt].setText(menuData[menuData.length + i].title);
431
                            menuTexts[menuItemCnt].setDataIndex(i);
431
                            menuTexts[menuItemCnt].setDataIndex(i);
432
                        }
432
                        }
433
                    } else if (i < menuData.length) {
433
                    } else if (i < menuData.length) {
434
                        menuTexts[menuItemCnt].setText(menuData[i].title);
434
                        menuTexts[menuItemCnt].setText(menuData[i].title);
435
                        menuTexts[menuItemCnt].setDataIndex(i);
435
                        menuTexts[menuItemCnt].setDataIndex(i);
436
                    } else {        //nu är i > antal noder i listan, vi kanske ska ladda in nod0, nod1 osv nu
436
                    } else {        //nu är i > antal noder i listan, vi kanske ska ladda in nod0, nod1 osv nu
437
                        if (menuData.length >= nrOfMenuItem) {
437
                        if (menuData.length >= nrOfMenuItem) {
438
                            menuTexts[menuItemCnt].setText(menuData[i - menuData.length].title);
438
                            menuTexts[menuItemCnt].setText(menuData[i - menuData.length].title);
439
                            menuTexts[menuItemCnt].setDataIndex(i);
439
                            menuTexts[menuItemCnt].setDataIndex(i);
440
                        } else {
440
                        } else {
441
                            //trace(menuItemCnt + " " + nrOfMenuItem);
441
                            //trace(menuItemCnt + " " + nrOfMenuItem);
442
                            //trace(menuItemCnt);
442
                            //trace(menuItemCnt);
443
                        }
443
                        }
444
                    }
444
                    }
445
                    menuItemCnt++;
445
                    menuItemCnt++;
446
                }
446
                }
447
       
447
       
448
                for (var i:Number = 0; i < nrOfMenuItem; i++) {
448
                for (var i:Number = 0; i < nrOfMenuItem; i++) {
449
                    placeHolder[i].menuItemIndex = i;
449
                    placeHolder[i].menuItemIndex = i;
450
           
450
           
451
                    menuTexts[i].setFree(false);
451
                    menuTexts[i].setFree(false);
452
                    menuTexts[i].setTop(placeHolder[i].top);
452
                    menuTexts[i].setTop(placeHolder[i].top);
453
                    menuTexts[i].setHeight(placeHolder[i].height);
453
                    menuTexts[i].setHeight(placeHolder[i].height);
454
                    //trace("i: " + i + " top: " + menuTexts[i].getTop() + " text: " + menuTexts[i].getText());
454
                    //trace("i: " + i + " top: " + menuTexts[i].getTop() + " text: " + menuTexts[i].getText());
455
                }
455
                }
456
                showDescription();
456
                showDescription();
457
            }
457
            }
458
        }
458
        }
459
    }
459
    }
460
 
460
 
461
   
461
   
462
    public function test (Void):Void {
462
    public function test (Void):Void {
463
            for (var i:Number = 0; i < nrOfMenuItem + 1; i++) {
463
            for (var i:Number = 0; i < nrOfMenuItem + 1; i++) {
464
                trace(i + " " + menuTexts[i].getTop() + " : " + menuTexts[i].getText());
464
                trace(i + " " + menuTexts[i].getTop() + " : " + menuTexts[i].getText());
465
                trace(menuTexts[i].isInUse());
465
                trace(menuTexts[i].isInUse());
466
                //placeHolder[i].menuItemIndex = i;
466
                //placeHolder[i].menuItemIndex = i;
467
       
467
       
468
                //trace("i: " + i + " top: " + menuTexts[i].getTop() + " text: " + menuTexts[i].getText());
468
                //trace("i: " + i + " top: " + menuTexts[i].getTop() + " text: " + menuTexts[i].getText());
469
                //menuTexts[i].setHeight(placeHolder[i].height);
469
                //menuTexts[i].setHeight(placeHolder[i].height);
470
            }
470
            }
471
            showDescription();
471
            showDescription();
472
 
472
 
473
/*      var testvar:Number;
473
/*      var testvar:Number;
474
        for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
474
        for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
475
            testvar = menuTexts[i].getHeight();
475
            testvar = menuTexts[i].getHeight();
476
        }*/
476
        }*/
477
    }
477
    }
478
   
478
   
479
    private function onMoveTweenDone() {
479
    private function onMoveTweenDone() {
480
        /*
480
        /*
481
    var tweenCommand:Number = 0;
481
    var tweenCommand:Number = 0;
482
        //0 = stop
482
        //0 = stop
483
        //1 = scrollup
483
        //1 = scrollup
484
        //2 = scrolldown
484
        //2 = scrolldown
485
       
485
       
486
        */
486
        */
487
        isScrolling = false;
487
        isScrolling = false;
488
       
488
       
489
        if (tweenCommand == 1) {
489
        if (tweenCommand == 1) {
490
            scrollUp();
490
            scrollUp();
491
        } else if (tweenCommand == 2) {
491
        } else if (tweenCommand == 2) {
492
            scrollDown();
492
            scrollDown();
493
        } else if (tweenCommand == 0) {
493
        } else if (tweenCommand == 0) {
494
            if (incomDataArr.length > 0) {
494
            if (incomDataArr.length > 0) {
495
            //if (newDataExists) {
495
            //if (newDataExists) {
496
                //detta funkar någorlunda
496
                //detta funkar någorlunda
497
                //trace(".time: " + moveTween.time + ".duration: " + moveTween.duration);
497
                //trace(".time: " + moveTween.time + ".duration: " + moveTween.duration);
498
                //newDataExists = false;
498
                //newDataExists = false;
499
                //setNewData(newData);
499
                //setNewData(newData);
500
                popData();
500
                popData();
501
               
501
               
502
            } else {
502
            } else {
503
            //test();
503
            //test();
504
                showDescription();
504
                showDescription();
505
                sendData(new XML("<flinshpacket menuid=\"" + menuName + "\" middleid=\"" + menuData[menuMiddleItem].id + "\" />"));
505
                sendData(new XML("<flinshpacket menuid=\"" + menuName + "\" middleid=\"" + menuData[menuMiddleItem].id + "\" />"));
506
            }
506
            }
507
            //sendData(new XML("<data name=\"id\" value=\"" + menuName+ "\"><middleitem>" + menuMiddleItem + "</middleitem></data>"));
507
            //sendData(new XML("<data name=\"id\" value=\"" + menuName+ "\"><middleitem>" + menuMiddleItem + "</middleitem></data>"));
508
        }
508
        }
509
    }
509
    }
510
 
510
 
511
    private function showDescription() {
511
    private function showDescription() {
512
       
512
       
513
            //finns ingen description skall detta inte köras dock (det ser menudescobj till, dess height blir 0)
513
            //finns ingen description skall detta inte köras dock (det ser menudescobj till, dess height blir 0)
514
            menuItemDesc.update(menuData[menuMiddleItem].description);
514
            menuItemDesc.update(menuData[menuMiddleItem].description);
515
            //menuItemDesc.update("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.");
515
            //menuItemDesc.update("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.");
516
           
516
           
517
            //kör igång animering på de items som ligger ivägen
517
            //kör igång animering på de items som ligger ivägen
518
            var descY:Number = menuItemDesc.getBottom();
518
            var descY:Number = menuItemDesc.getBottom();
519
            var firstFreePlaceHolder:Number = 0;
519
            var firstFreePlaceHolder:Number = 0;
520
            for (var i:Number = middleItemPosition+1; i < nrOfMenuItem; i++) {
520
            for (var i:Number = middleItemPosition+1; i < nrOfMenuItem; i++) {
521
                //ta reda på vilken som är första "fria" placeHoldern
521
                //ta reda på vilken som är första "fria" placeHoldern
522
                if (descY<placeHolder[i-1].top+placeHolder[i-1].height) {
522
                if (descY<placeHolder[i-1].top+placeHolder[i-1].height) {
523
                    firstFreePlaceHolder = i;
523
                    firstFreePlaceHolder = i;
524
                    //trace(i + " " + (placeHolder[i-1].top + placeHolder[i-1].height) );
524
                    //trace(i + " " + (placeHolder[i-1].top + placeHolder[i-1].height) );
525
                    break;
525
                    break;
526
                }
526
                }
527
            }
527
            }
528
            if (firstFreePlaceHolder > 0) {
528
            if (firstFreePlaceHolder > 0) {
529
                for (var i:Number = 0; i < nrOfMenuItem + 1 ; i++) {
529
                for (var i:Number = 0; i < nrOfMenuItem + 1 ; i++) {
530
                    menuTexts[i].fforward();
530
                    menuTexts[i].fforward();
531
                }
531
                }
532
                var offset:Number = firstFreePlaceHolder - middleItemPosition-1;
532
                var offset:Number = firstFreePlaceHolder - middleItemPosition-1;
533
                for (var i:Number = middleItemPosition+1; i < nrOfMenuItem; i++) {
533
                for (var i:Number = middleItemPosition+1; i < nrOfMenuItem; i++) {
534
                    //kolla igenom de menuTexts som möjligtvis kan ligga under description
534
                    //kolla igenom de menuTexts som möjligtvis kan ligga under description
535
                    //dessa skall tweenas i storlek och position, offsetten mellan första upptagna och första fria skall sparas
535
                    //dessa skall tweenas i storlek och position, offsetten mellan första upptagna och första fria skall sparas
536
                    //alla ska flyttas med offsetten, hamnar de utanför sista placeholdern skall de läggas där med height = 0
536
                    //alla ska flyttas med offsetten, hamnar de utanför sista placeholdern skall de läggas där med height = 0
537
                    //placeHolders ska nu bara användas för att flytta och resiza menuTexts, de skall inte ändras
537
                    //placeHolders ska nu bara användas för att flytta och resiza menuTexts, de skall inte ändras
538
                    //trace(i);
538
                    //trace(i);
539
                    if (i+offset<nrOfMenuItem) {
539
                    if (i+offset<nrOfMenuItem) {
540
                        moveTween = menuTexts[placeHolder[i].menuItemIndex].scroll(placeHolder[i+offset].top, placeHolder[i+offset].height, descScrollTime/2);
540
                        moveTween = menuTexts[placeHolder[i].menuItemIndex].scroll(placeHolder[i+offset].top, placeHolder[i+offset].height, descScrollTime/2);
541
                    } else {
541
                    } else {
542
                        moveTween = menuTexts[placeHolder[i].menuItemIndex].scroll(placeHolder[nrOfMenuItem-1].top + placeHolder[nrOfMenuItem-1].height, 0, descScrollTime/2);
542
                        moveTween = menuTexts[placeHolder[i].menuItemIndex].scroll(placeHolder[nrOfMenuItem-1].top + placeHolder[nrOfMenuItem-1].height, 0, descScrollTime/2);
543
                    }
543
                    }
544
                }
544
                }
545
            }
545
            }
546
            menuItemDesc.appear();     
546
            menuItemDesc.appear();     
547
    }
547
    }
548
       
548
       
549
       
549
       
550
    public function scrollUp (Void) :Void {
550
    public function scrollUp (Void) :Void {
551
        //trace("up");
551
        //trace("up");
552
       
552
       
553
       
553
       
554
        var wrapMenu:Boolean = (menuData.length >= nrOfMenuItem);
554
        var wrapMenu:Boolean = (menuData.length >= nrOfMenuItem);
555
        moveTween.onMotionFinished = null;
555
        moveTween.onMotionFinished = null;
556
        if ((menuMiddleItem > 0) || (wrapMenu)) {
556
        if ((menuMiddleItem > 0) || (wrapMenu)) {
557
            isScrolling = true;
557
            isScrolling = true;
558
           
558
           
559
            for (var i:Number = 0; i < nrOfMenuItem + 1; i++) {
559
            for (var i:Number = 0; i < nrOfMenuItem + 1; i++) {
560
                menuTexts[i].fforward();
560
                menuTexts[i].fforward();
561
            }
561
            }
562
 
562
 
563
            menuMiddleItem--;
563
            menuMiddleItem--;
564
            menuItemDesc.hide();            //Hide the description placed under the marked item (if description is shown)
564
            menuItemDesc.hide();            //Hide the description placed under the marked item (if description is shown)
565
       
565
       
566
            //makes sure menumiddleitem is correct when wrapping
566
            //makes sure menumiddleitem is correct when wrapping
567
            if (menuMiddleItem < 0) {
567
            if (menuMiddleItem < 0) {
568
                menuMiddleItem = menuData.length-1;
568
                menuMiddleItem = menuData.length-1;
569
            }
569
            }
570
           
570
           
571
            if (tweenCommand == 0) {        //om vi inte redan är igång så ska den längre scrollen köras
571
            if (tweenCommand == 0) {        //om vi inte redan är igång så ska den längre scrollen köras
572
                var timeToScroll:Number = scrollDelayTime;
572
                var timeToScroll:Number = scrollDelayTime;
573
            } else {                                        //annars kör vi repeatrate
573
            } else {                                        //annars kör vi repeatrate
574
                var timeToScroll:Number = scrollRepeatTime;
574
                var timeToScroll:Number = scrollRepeatTime;
575
            }
575
            }
576
            tweenCommand = 1;
576
            tweenCommand = 1;
577
           
577
           
578
            //i placeholdern längst ner finns det nu lediga menuitem
578
            //i placeholdern längst ner finns det nu lediga menuitem
579
            var dummyFree:Number = placeHolder[nrOfMenuItem-1].menuItemIndex;
579
            var dummyFree:Number = placeHolder[nrOfMenuItem-1].menuItemIndex;
580
            //scrolla detta menuitem så det hamnar under den placeholdern längst ner och scrolla dess height till 0
580
            //scrolla detta menuitem så det hamnar under den placeholdern längst ner och scrolla dess height till 0
581
            moveTween = menuTexts[dummyFree].scroll(placeHolder[nrOfMenuItem-1].top + placeHolder[nrOfMenuItem-1].height, 0, timeToScroll);
581
            moveTween = menuTexts[dummyFree].scroll(placeHolder[nrOfMenuItem-1].top + placeHolder[nrOfMenuItem-1].height, 0, timeToScroll);
582
        //BUGG löst
582
        //BUGG löst
583
        //den beror delvis på att menuitemobj inte scrollar om objektet är på samma y-värde som tidigare
583
        //den beror delvis på att menuitemobj inte scrollar om objektet är på samma y-värde som tidigare
584
        //fixat längre ner, där man scrollar in den nya
584
        //fixat längre ner, där man scrollar in den nya
585
       
585
       
586
            //fadea bort den också
586
            //fadea bort den också
587
            if (menuTexts[dummyFree].isInUse()) {
587
            if (menuTexts[dummyFree].isInUse()) {
588
                menuTexts[dummyFree].fade(100, 0, timeToScroll);
588
                menuTexts[dummyFree].fade(100, 0, timeToScroll);
589
                //detta buggar, inuse är inte riktigt rätt satt, vilket gör att itemet är visible 
589
                //detta buggar, inuse är inte riktigt rätt satt, vilket gör att itemet är visible 
590
               
590
               
591
            }
591
            }
592
 
592
 
593
            //trace("frigör: " + dummyFree);
593
            //trace("frigör: " + dummyFree);
594
           
594
           
595
            for (var i:Number = nrOfMenuItem-1; i > 0; i--) {
595
            for (var i:Number = nrOfMenuItem-1; i > 0; i--) {
596
                //trace("flyttar " + placeHolder[i-1].menuItemIndex + " till placeHolder[" + i + "]");
596
                //trace("flyttar " + placeHolder[i-1].menuItemIndex + " till placeHolder[" + i + "]");
597
                placeHolder[i].menuItemIndex = placeHolder[i-1].menuItemIndex;
597
                placeHolder[i].menuItemIndex = placeHolder[i-1].menuItemIndex;
598
                var curPlace:PlaceHolderObj = placeHolder[i];
598
                var curPlace:PlaceHolderObj = placeHolder[i];
599
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
599
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
600
            }
600
            }
601
           
601
           
602
            //find a free menuText
602
            //find a free menuText
603
            var freeItem:Number;
603
            var freeItem:Number;
604
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
604
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
605
                if (menuTexts[i].isFree()) {
605
                if (menuTexts[i].isFree()) {
606
                    freeItem = i;
606
                    freeItem = i;
607
                    break;
607
                    break;
608
                }
608
                }
609
            }
609
            }
610
           
610
           
611
            //frigör den _efter_ valet av ny kontainer
611
            //frigör den _efter_ valet av ny kontainer
612
            menuTexts[dummyFree].setFree(true);        
612
            menuTexts[dummyFree].setFree(true);        
613
            menuTexts[dummyFree].notInUse();
613
            menuTexts[dummyFree].notInUse();
614
           
614
           
615
            var curPlace:PlaceHolderObj = placeHolder[0];
615
            var curPlace:PlaceHolderObj = placeHolder[0];
616
            curPlace.menuItemIndex = freeItem;
616
            curPlace.menuItemIndex = freeItem;
617
           
617
           
618
            //newItem is the index of a menudata-entry, the entry that now should enter the menu
618
            //newItem is the index of a menudata-entry, the entry that now should enter the menu
619
            var newItem:Number = menuMiddleItem-middleItemPosition;
619
            var newItem:Number = menuMiddleItem-middleItemPosition;
620
            if ((wrapMenu) && (newItem<0)) {
620
            if ((wrapMenu) && (newItem<0)) {
621
                newItem = newItem + menuData.length;
621
                newItem = newItem + menuData.length;
622
            }
622
            }
623
            if ((newItem>=0) || (wrapMenu)) {
623
            if ((newItem>=0) || (wrapMenu)) {
624
                //trace("använder: " + freeItem + " till: " + menuData[newItem].title);
624
                //trace("använder: " + freeItem + " till: " + menuData[newItem].title);
625
                menuTexts[curPlace.menuItemIndex].setFree(false);
625
                menuTexts[curPlace.menuItemIndex].setFree(false);
626
                menuTexts[curPlace.menuItemIndex].setText(menuData[newItem].title);
626
                menuTexts[curPlace.menuItemIndex].setText(menuData[newItem].title);
627
                menuTexts[curPlace.menuItemIndex].setDataIndex(newItem);
627
                menuTexts[curPlace.menuItemIndex].setDataIndex(newItem);
628
                menuTexts[curPlace.menuItemIndex].setTop(menuTop+1);
628
                menuTexts[curPlace.menuItemIndex].setTop(menuTop+1);
629
                menuTexts[curPlace.menuItemIndex].setHeight(0);
629
                menuTexts[curPlace.menuItemIndex].setHeight(0);
630
                menuTexts[curPlace.menuItemIndex].fade(0, 100, timeToScroll);
630
                menuTexts[curPlace.menuItemIndex].fade(0, 100, timeToScroll);
631
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
631
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
632
                //trace("inuse: " + menuTexts[freeItem].isInUse() + " kanal: " + menuData[newItem].title + " visible: " + menuTexts[freeItem].isvisible());
632
                //trace("inuse: " + menuTexts[freeItem].isInUse() + " kanal: " + menuData[newItem].title + " visible: " + menuTexts[freeItem].isvisible());
633
            } else {
633
            } else {
634
                //trace("använder2: " + freeItem);
634
                //trace("använder2: " + freeItem);
635
                menuTexts[curPlace.menuItemIndex].setFree(false);
635
                menuTexts[curPlace.menuItemIndex].setFree(false);
636
               
636
               
637
            }
637
            }
638
 
638
 
639
            moveTween.onMotionFinished = Delegate.create(this, onMoveTweenDone);           
639
            moveTween.onMotionFinished = Delegate.create(this, onMoveTweenDone);           
640
        } else {
640
        } else {
641
            showDescription();
641
            showDescription();
642
            tweenCommand = 0;
642
            tweenCommand = 0;
643
        }
643
        }
644
    }
644
    }
645
 
645
 
646
    /**
646
    /**
647
    scrollDown
647
    scrollDown
648
    */
648
    */
649
    public function scrollDown () {
649
    public function scrollDown () {
650
       
650
       
651
        var wrapMenu:Boolean = (menuData.length >= nrOfMenuItem);
651
        var wrapMenu:Boolean = (menuData.length >= nrOfMenuItem);
652
        moveTween.onMotionFinished = null;
652
        moveTween.onMotionFinished = null;
653
       
653
       
654
        if ((menuMiddleItem < menuData.length-1) || (wrapMenu)) {
654
        if ((menuMiddleItem < menuData.length-1) || (wrapMenu)) {
655
            isScrolling = true;
655
            isScrolling = true;
656
            for (var i:Number = 0; i < nrOfMenuItem + 1 ; i++) {
656
            for (var i:Number = 0; i < nrOfMenuItem + 1 ; i++) {
657
                menuTexts[i].fforward();
657
                menuTexts[i].fforward();
658
                //fforward()
658
                //fforward()
659
            }
659
            }
660
 
660
 
661
            menuMiddleItem++;
661
            menuMiddleItem++;
662
            menuItemDesc.hide();            //Hide the description placed under the marked item (if description is shown)
662
            menuItemDesc.hide();            //Hide the description placed under the marked item (if description is shown)
663
           
663
           
664
            //makes sure menumiddleitem is correct when wrapping
664
            //makes sure menumiddleitem is correct when wrapping
665
            if (menuMiddleItem >= menuData.length) {
665
            if (menuMiddleItem >= menuData.length) {
666
                menuMiddleItem = 0;
666
                menuMiddleItem = 0;
667
            }
667
            }
668
           
668
           
669
            if (tweenCommand == 0) {        //om vi inte redan är igång så ska den längre scrollen köras
669
            if (tweenCommand == 0) {        //om vi inte redan är igång så ska den längre scrollen köras
670
                var timeToScroll:Number = scrollDelayTime;
670
                var timeToScroll:Number = scrollDelayTime;
671
            } else {                                        //annars kör vi repeatrate
671
            } else {                                        //annars kör vi repeatrate
672
                var timeToScroll:Number = scrollRepeatTime;
672
                var timeToScroll:Number = scrollRepeatTime;
673
            }
673
            }
674
            tweenCommand = 2;
674
            tweenCommand = 2;
675
           
675
           
676
            var dummyFree:Number = placeHolder[0].menuItemIndex;
676
            var dummyFree:Number = placeHolder[0].menuItemIndex;
677
            //menuTexts[dummyFree].fforward();
677
            //menuTexts[dummyFree].fforward();
678
            moveTween = menuTexts[dummyFree].scroll(menuTexts[dummyFree].getTop, 0, timeToScroll);
678
            moveTween = menuTexts[dummyFree].scroll(menuTexts[dummyFree].getTop, 0, timeToScroll);
679
            menuTexts[dummyFree].fade(100, 0, timeToScroll);
679
            menuTexts[dummyFree].fade(100, 0, timeToScroll);
680
            //trace("frigör: " + dummyFree);
680
            //trace("frigör: " + dummyFree);
681
 
681
 
682
            for (var i:Number = 0; i < nrOfMenuItem-1; i++) {
682
            for (var i:Number = 0; i < nrOfMenuItem-1; i++) {
683
                placeHolder[i].menuItemIndex = placeHolder[i+1].menuItemIndex;
683
                placeHolder[i].menuItemIndex = placeHolder[i+1].menuItemIndex;
684
                var curPlace:PlaceHolderObj = placeHolder[i];
684
                var curPlace:PlaceHolderObj = placeHolder[i];
685
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
685
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
686
            }
686
            }
687
           
687
           
688
            //find a free menuText
688
            //find a free menuText
689
            var freeItem:Number;
689
            var freeItem:Number;
690
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
690
            for (var i:Number = 0; i < nrOfMenuItem+1; i++) {
691
                if (menuTexts[i].isFree()) {
691
                if (menuTexts[i].isFree()) {
692
                    freeItem = i;
692
                    freeItem = i;
693
                    break;
693
                    break;
694
                }
694
                }
695
            }
695
            }
696
            //frigör den _efter_ valet av ny kontainer
696
            //frigör den _efter_ valet av ny kontainer
697
            menuTexts[dummyFree].setFree(true);
697
            menuTexts[dummyFree].setFree(true);
698
            menuTexts[dummyFree].notInUse();
698
            menuTexts[dummyFree].notInUse();
699
           
699
           
700
            var curPlace:PlaceHolderObj = placeHolder[nrOfMenuItem-1];
700
            var curPlace:PlaceHolderObj = placeHolder[nrOfMenuItem-1];
701
            curPlace.menuItemIndex = freeItem;
701
            curPlace.menuItemIndex = freeItem;
702
           
702
           
703
            //newItem is the index of a menudata-entry, the entry that now should enter the menu
703
            //newItem is the index of a menudata-entry, the entry that now should enter the menu
704
            var newItem:Number = menuMiddleItem+nrOfMenuItem-middleItemPosition-1;
704
            var newItem:Number = menuMiddleItem+nrOfMenuItem-middleItemPosition-1;
705
            if ((wrapMenu) && (newItem>=menuData.length)) {
705
            if ((wrapMenu) && (newItem>=menuData.length)) {
706
                newItem = newItem - menuData.length;
706
                newItem = newItem - menuData.length;
707
            }
707
            }
708
            if ((newItem<menuData.length) || (wrapMenu)) {
708
            if ((newItem<menuData.length) || (wrapMenu)) {
709
                //trace("använder: " + freeItem);
709
                //trace("använder: " + freeItem);
710
                menuTexts[curPlace.menuItemIndex].setFree(false);
710
                menuTexts[curPlace.menuItemIndex].setFree(false);
711
                menuTexts[curPlace.menuItemIndex].setText(menuData[newItem].title);
711
                menuTexts[curPlace.menuItemIndex].setText(menuData[newItem].title);
712
                menuTexts[curPlace.menuItemIndex].setDataIndex(newItem);
712
                menuTexts[curPlace.menuItemIndex].setDataIndex(newItem);
713
                menuTexts[curPlace.menuItemIndex].setTop(menuTop+menuHeight);
713
                menuTexts[curPlace.menuItemIndex].setTop(menuTop+menuHeight);
714
                menuTexts[curPlace.menuItemIndex].setHeight(0);
714
                menuTexts[curPlace.menuItemIndex].setHeight(0);
715
                menuTexts[curPlace.menuItemIndex].fade(0, 100, timeToScroll);
715
                menuTexts[curPlace.menuItemIndex].fade(0, 100, timeToScroll);
716
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
716
                moveTween = menuTexts[curPlace.menuItemIndex].scroll(curPlace.top, curPlace.height, timeToScroll);
717
            } else {
717
            } else {
718
                //trace("använder2: " + freeItem);
718
                //trace("använder2: " + freeItem);
719
                menuTexts[curPlace.menuItemIndex].setFree(false);
719
                menuTexts[curPlace.menuItemIndex].setFree(false);
720
               
720
               
721
            }
721
            }
722
           
722
           
723
            moveTween.onMotionFinished = Delegate.create(this, onMoveTweenDone);
723
            moveTween.onMotionFinished = Delegate.create(this, onMoveTweenDone);
724
        } else {
724
        } else {
725
            showDescription();
725
            showDescription();
726
            tweenCommand = 0;
726
            tweenCommand = 0;
727
        }
727
        }
728
       
728
       
729
    }
729
    }
730
   
730
   
731
   
731
   
732
   
732
   
733
    public function scrollStop (Void) :Void {
733
    public function scrollStop (Void) :Void {
734
        /*
734
        /*
735
        description kommer få en max-height, blir den större ska den scrolla :)
735
        description kommer få en max-height, blir den större ska den scrolla :)
736
        denna kommer få max-height så att det alltid finns en stor item under samt alla de små
736
        denna kommer få max-height så att det alltid finns en stor item under samt alla de små
737
       
737
       
738
        var tweenCommand:Number = 0;
738
        var tweenCommand:Number = 0;
739
        //0 = stop
739
        //0 = stop
740
        //1 = scrollup
740
        //1 = scrollup
741
        //2 = scrolldown
741
        //2 = scrolldown
742
        */
742
        */
743
       
743
       
744
 
744
 
745
        tweenCommand = 0;
745
        tweenCommand = 0;
746
       
746
       
747
    }
747
    }
748
 
748
 
749
    public function setScrollDelay (value:Number) :Void {
749
    public function setScrollDelay (value:Number) :Void {
750
        /*
750
        /*
751
        */
751
        */
752
        if (value > 0.05) {
752
        if (value > 0.05) {
753
            scrollDelayTime = value;
753
            scrollDelayTime = value;
754
        }
754
        }
755
    }
755
    }
756
    public function setScrollRepeat (value:Number) :Void {
756
    public function setScrollRepeat (value:Number) :Void {
757
        /*
757
        /*
758
        */
758
        */
759
        if (value > 0.05) {
759
        if (value > 0.05) {
760
            scrollRepeatTime = value;
760
            scrollRepeatTime = value;
761
        }
761
        }
762
    }
762
    }
763
 
763
 
764
    public function getScrollDelay (Void) :Number {
764
    public function getScrollDelay (Void) :Number {
765
        /*
765
        /*
766
        */
766
        */
767
            return scrollDelayTime;
767
            return scrollDelayTime;
768
    }
768
    }
769
    public function getScrollRepeat (Void) :Number {
769
    public function getScrollRepeat (Void) :Number {
770
        /*
770
        /*
771
        */
771
        */
772
            return scrollRepeatTime;
772
            return scrollRepeatTime;
773
    }
773
    }
774
 
774
 
775
    private function parseConfig(data:XMLNode): Array {
775
    private function parseConfig(data:XMLNode): Array {
776
        var confError:Number = -1;
776
        var confError:Number = -1;
777
        var confArr:Array = new Array();
777
        var confArr:Array = new Array();
778
        for (var bNode:XMLNode = data.firstChild; bNode != null && confError == -1; bNode=bNode.nextSibling) {
778
        for (var bNode:XMLNode = data.firstChild; bNode != null && confError == -1; bNode=bNode.nextSibling) {
779
            //trace(bNode.nodeName);
779
            //trace(bNode.nodeName);
780
            if (bNode.nodeName == "option") {
780
            if (bNode.nodeName == "option") {
781
                switch (bNode.attributes.name) {
781
                switch (bNode.attributes.name) {
782
                    case "menushortname":
782
                    case "menushortname":
783
                    confArr[1] = bNode.attributes.value;
783
                    confArr[1] = bNode.attributes.value;
784
                    break;
784
                    break;
785
                    case "menudescription":
785
                    case "menudescription":
786
                    confArr[2] = bNode.attributes.value;
786
                    confArr[2] = bNode.attributes.value;
787
                    break;
787
                    break;
788
                    case "rowitemfont":
788
                    case "rowitemfont":
789
                    if (bNode.attributes.value.length > 0) {   
789
                    if (bNode.attributes.value.length > 0) {   
790
                        confArr[3] = bNode.attributes.value;
790
                        confArr[3] = bNode.attributes.value;
791
                    } else {
791
                    } else {
792
                        confError = 3;
792
                        confError = 3;
793
                    }
793
                    }
794
                    break;
794
                    break;
795
                    case "descriptionfont":
795
                    case "descriptionfont":
796
                    if (bNode.attributes.value.length > 0) {   
796
                    if (bNode.attributes.value.length > 0) {   
797
                        confArr[4] = bNode.attributes.value;
797
                        confArr[4] = bNode.attributes.value;
798
                    } else {
798
                    } else {
799
                        confError = 4;
799
                        confError = 4;
800
                    }
800
                    }
801
                    //trace(aNode.attributes.value);
801
                    //trace(aNode.attributes.value);
802
                    break;
802
                    break;
803
                    case "left":
803
                    case "left":
804
                    if (parseFloat(bNode.attributes.value) >= 0) {
804
                    if (parseFloat(bNode.attributes.value) >= 0) {
805
                        confArr[5] = parseFloat(bNode.attributes.value) * Stage.width;
805
                        confArr[5] = parseFloat(bNode.attributes.value) * Stage.width;
806
                    } else {
806
                    } else {
807
                        confError = 5;
807
                        confError = 5;
808
                    }
808
                    }
809
                    break;
809
                    break;
810
                    case "top":
810
                    case "top":
811
                    if (parseFloat(bNode.attributes.value) >= 0) {
811
                    if (parseFloat(bNode.attributes.value) >= 0) {
812
                        confArr[6] = parseFloat(bNode.attributes.value) * Stage.height;
812
                        confArr[6] = parseFloat(bNode.attributes.value) * Stage.height;
813
                    } else {
813
                    } else {
814
                        confError = 6;
814
                        confError = 6;
815
                    }
815
                    }
816
                    break;
816
                    break;
817
                    case "width":
817
                    case "width":
818
                    if (parseFloat(bNode.attributes.value) >= 0) {
818
                    if (parseFloat(bNode.attributes.value) >= 0) {
819
                        confArr[7] = parseFloat(bNode.attributes.value) * Stage.width;
819
                        confArr[7] = parseFloat(bNode.attributes.value) * Stage.width;
820
                    } else {
820
                    } else {
821
                        confError = 7;
821
                        confError = 7;
822
                    }
822
                    }
823
                    break;
823
                    break;
824
                    case "height":
824
                    case "height":
825
                    if (parseFloat(bNode.attributes.value) >= 0) {
825
                    if (parseFloat(bNode.attributes.value) >= 0) {
826
                        confArr[8] = parseFloat(bNode.attributes.value) * Stage.height;
826
                        confArr[8] = parseFloat(bNode.attributes.value) * Stage.height;
827
                    } else {
827
                    } else {
828
                        confError = 8;
828
                        confError = 8;
829
                    }
829
                    }
830
                    break;
830
                    break;
831
                    case "menurowitems":
831
                    case "menurowitems":
832
                    if (parseInt(bNode.attributes.value) > 0) {
832
                    if (parseInt(bNode.attributes.value) > 0) {
833
                        confArr[9] = parseInt(bNode.attributes.value);
833
                        confArr[9] = parseInt(bNode.attributes.value);
834
                    } else {
834
                    } else {
835
                        confError = 9;
835
                        confError = 9;
836
                    }
836
                    }
837
                    break;
837
                    break;
838
                    case "sizedrowitems":
838
                    case "sizedrowitems":
839
                    if (parseInt(bNode.attributes.value) > 0) {
839
                    if (parseInt(bNode.attributes.value) > 0) {
840
                        confArr[10] = parseInt(bNode.attributes.value);
840
                        confArr[10] = parseInt(bNode.attributes.value);
841
                    } else {
841
                    } else {
842
                        confError = 10;
842
                        confError = 10;
843
                    }
843
                    }
844
                    break;
844
                    break;
845
                    case "scrolldelaytime":
845
                    case "scrolldelaytime":
846
                    if (parseFloat(bNode.attributes.value) >= 0) {
846
                    if (parseFloat(bNode.attributes.value) >= 0) {
847
                        confArr[11] = parseFloat(bNode.attributes.value);
847
                        confArr[11] = parseFloat(bNode.attributes.value);
848
                    } else {
848
                    } else {
849
                        confError = 11;
849
                        confError = 11;
850
                    }
850
                    }
851
                    //10
851
                    //10
852
                    break;
852
                    break;
853
                    case "scrollrepeattime":
853
                    case "scrollrepeattime":
854
                    if (parseFloat(bNode.attributes.value) >= 0) {
854
                    if (parseFloat(bNode.attributes.value) >= 0) {
855
                        confArr[12] = parseFloat(bNode.attributes.value);
855
                        confArr[12] = parseFloat(bNode.attributes.value);
856
                    } else {
856
                    } else {
857
                        confError = 12;
857
                        confError = 12;
858
                    }
858
                    }
859
                    break;
859
                    break;
860
                    case "menucolor":
860
                    case "menucolor":
861
                    if (parseInt(bNode.attributes.value) >= 0) {
861
                    if (parseInt(bNode.attributes.value) >= 0) {
862
                        confArr[13] = parseInt(bNode.attributes.value);
862
                        confArr[13] = parseInt(bNode.attributes.value);
863
                        //trace(confArr[13]);
863
                        //trace(confArr[13]);
864
                    } else {
864
                    } else {
865
                        confError = 13;
865
                        confError = 13;
866
                    }
866
                    }
867
                    break;
867
                    break;
868
                    case "desccolor":
868
                    case "desccolor":
869
                    if (parseInt(bNode.attributes.value) >= 0) {
869
                    if (parseInt(bNode.attributes.value) >= 0) {
870
                        confArr[14] = parseInt(bNode.attributes.value);
870
                        confArr[14] = parseInt(bNode.attributes.value);
871
                    } else {
871
                    } else {
872
                        confError = 14;
872
                        confError = 14;
873
                    }
873
                    }
874
                    break;
874
                    break;
875
                    case "descscrolltime":
875
                    case "descscrolltime":
876
                    if (parseFloat(bNode.attributes.value) >= 0) {
876
                    if (parseFloat(bNode.attributes.value) >= 0) {
877
                        confArr[15] = parseFloat(bNode.attributes.value);
877
                        confArr[15] = parseFloat(bNode.attributes.value);
878
                    } else {
878
                    } else {
879
                        confError = 15;
879
                        confError = 15;
880
                    }
880
                    }
881
                    break;
881
                    break;
882
                    case "":
882
                    case "":
883
                    if (true) {
883
                    if (true) {
884
                        confArr[16] = parseFloat(bNode.attributes.value);
884
                        confArr[16] = parseFloat(bNode.attributes.value);
885
                    } else {
885
                    } else {
886
                        confError = 16;
886
                        confError = 16;
887
                    }
887
                    }
888
                    break;             
888
                    break;             
889
                    case "":
889
                    case "":
890
                    if (true) {
890
                    if (true) {
891
                        confArr[17] = parseFloat(bNode.attributes.value);
891
                        confArr[17] = parseFloat(bNode.attributes.value);
892
                    } else {
892
                    } else {
893
                        confError = 17;
893
                        confError = 17;
894
                    }
894
                    }
895
                    break;             
895
                    break;             
896
                    case "":
896
                    case "":
897
                    if (true) {
897
                    if (true) {
898
                        confArr[18] = parseFloat(bNode.attributes.value);
898
                        confArr[18] = parseFloat(bNode.attributes.value);
899
                    } else {
899
                    } else {
900
                        confError = 18;
900
                        confError = 18;
901
                    }
901
                    }
902
                    break;             
902
                    break;             
903
                }
903
                }
904
            }
904
            }
905
        }
905
        }
906
        confArr[0] = confError;
906
        confArr[0] = confError;
907
        return confArr;
907
        return confArr;
908
    }
908
    }
909
}
909
}
910
 
910