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 | ||