source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/display/renduTexte/RenduSound.as @ 2803

Last change on this file since 2803 was 2803, checked in by kent1, 10 years ago

Reflet presque up 2 date (reste les externals)

  • Property svn:executable set to *
File size: 10.1 KB
Line 
1package display.renduTexte
2{
3       
4        import display.renduTexte.listes.ContributionSon
5        import display.renduTexte.listes.Availability
6        import display.renduTexte.listes.ContribsSoundCollection
7        import display.renduTexte.listes.Period
8        import flash.display.Sprite;
9       
10       
11        import flash.events.MouseEvent;
12
13
14       
15       
16       
17        import display.renduTexte.ObjectPool
18       
19       
20        import andromeda.net.XMLLoader
21        import flash.events.Event;
22        import flash.net.URLRequest;
23        import flash.events.Event
24        import flash.utils.Timer
25        import flash.events.TimerEvent
26       
27       
28        import display.renduTexte.listes.mixList
29        import display.renduTexte.display3D.text.PlaySound
30
31        /**
32         * ...
33         * @author ths
34         */
35       
36         public class RenduSound extends Sprite
37        {
38               
39               
40               
41               
42               
43       
44                /* -------   */
45               
46               
47                private var sound_0 : PlaySound 
48                private var i : int 
49               
50                // YEAR POOLING
51                private var year                                : ContribsSoundCollection
52                private var year_pool                   : ObjectPool
53                private var year_activeObjects  : Array = []
54                private var Y : Number = 0 // REF
55                private var y_mixList : mixList  = new mixList ()
56                private var y_allow     :       Boolean  = true
57                private var y_timer_allow : Timer 
58                private var y_wait : Number = 120000
59               
60               
61                // MONTH POOLING
62                private var month       : ContribsSoundCollection 
63                private var month_pool                  : ObjectPool
64                private var month_activeObjects : Array = []
65                private var M : Number = 0 // REF
66                private var m_mixList : mixList  = new mixList ()
67                private var m_allow     :       Boolean  = true
68                private var m_timer_allow : Timer 
69                private var m_wait : Number = 120000
70               
71                // day POOLING
72                private var day : ContribsSoundCollection 
73                private var day_pool                    : ObjectPool
74                private var day_activeObjects   : Array = []
75                private var D : Number = 0 // REF
76                private var d_mixList : mixList  = new mixList ()
77                private var d_allow     :       Boolean  = true
78                private var d_timer_allow : Timer 
79                private var d_wait : Number = 120000
80               
81               
82                // hour POOLING
83                private var hour        : ContribsSoundCollection 
84                private var hour_pool           : ObjectPool
85                private var hour_activeObjects  : Array = []
86                private var H : Number = 0 // REF
87                private var h_mixList : mixList  = new mixList ()
88                private var h_allow:Boolean  = true
89                private var h_timer_allow:Timer 
90                private var h_wait : Number = 120000
91               
92
93                               
94                // present POOLING
95                private var present_pool                        : ObjectPool
96                private var present_activeObjects       : Array = []
97                private var P : Number = 0 // REF
98               
99               
100                private var availability : Availability
101                private var o: PlaySound;
102                //private var oo: MyClass;
103                private var n:int  = 3000
104               
105                private var contribSon : ContributionSon
106               
107               
108               
109                private var _domaine : String ;
110               
111               
112                public function RenduSound(domaine:String):void 
113                {                       
114                        _domaine = domaine
115                       
116                        //super(640,480, true, true, CameraType.SPRING);
117                       
118                       
119                       
120                        if (stage) init();
121                        else addEventListener(Event.ADDED_TO_STAGE, init);
122                       
123
124                }
125               
126               
127               
128               
129                private function init(e:Event = null):void 
130                {
131                       
132                       
133                        // load contributions
134                        var xmlLoader : XMLLoader = new XMLLoader(new URLRequest("http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+_domaine+"&type=son"))
135                        xmlLoader.addEventListener(Event.COMPLETE, complete)
136                       
137                               
138                               
139                               
140                }
141       
142                //
143
144               
145                private function complete(e:Event):void
146                {
147                       
148                       
149                       
150                       
151                        availability = new Availability (0,4,3,1)
152                       
153                       
154                       
155                        year = new ContribsSoundCollection(e.target.data..intervalle.(@value == "year"));
156                       
157               
158                        month = new ContribsSoundCollection(e.target.data..intervalle.(@value == "month"));
159                        //trace("month : " + month.getContribution().texte)
160                        //trace(month.empty)
161                       
162                        day = new ContribsSoundCollection(e.target.data..intervalle.(@value == "day"));
163                        //trace("day : " + day.getContribution().texte)
164                        //trace(day.empty)
165               
166                        hour = new ContribsSoundCollection(e.target.data..intervalle.(@value == "hour"));
167                        //
168                        //trace("hour : " + day.getContribution().texte)
169                        //trace(hour.empty)
170                                       
171                        var timerSynchro:Timer = new Timer( 100) ;
172                        timerSynchro.addEventListener( TimerEvent.TIMER,playSound) ;
173                        timerSynchro.start( ) ;                 
174               
175                       
176                       
177                       
178                       
179                       
180                       
181                       
182                        // YEAR POOL
183                        year_pool = new ObjectPool(false);
184                        year_pool.allocate(PlaySound, 10);
185                        year_pool.initialize("initPlayer",[0.3])
186                       
187                       
188                        // MONTH POOL
189                        month_pool = new ObjectPool(false);
190                        month_pool.allocate(PlaySound, 10);
191                        month_pool.initialize("initPlayer",[0.4])
192                       
193                        // DAY POOL
194                        day_pool = new ObjectPool(false);
195                        day_pool.allocate(PlaySound, 10);
196                        day_pool.initialize("initPlayer",[0.5])
197                       
198                        // hour POOL
199                        hour_pool = new ObjectPool(false);
200                        hour_pool.allocate(PlaySound, 20);
201                        hour_pool.initialize("initPlayer",[0.7])
202
203               
204                       
205                                       
206               
207                       
208                       
209                       
210                       
211                        // present POOL
212                        present_pool = new ObjectPool(false);
213                        present_pool.allocate(PlaySound, 5);
214                        present_pool.initialize("initPlayer",[1])
215                                       
216                }
217                       
218                private function playSound(e:TimerEvent):void
219                {       
220                       
221                        //trace("num child : "+scene.numChildren)
222                       
223                        if (availability.year_available && y_allow == true)
224                        {
225                               
226                                Y++
227                                contribSon = year.getContribution()
228                               
229                                if (contribSon.url != "empty" && y_mixList.present(contribSon.date) == false )
230                                {                       
231                                        y_allow = false
232                                        y_mixList.add(contribSon.date)
233                                        availability.new_year_used()
234                                        o = year_pool.object;
235                                        o.start("year",Y,contribSon.url,contribSon.date)
236                                        o.addEventListener("DISPLAY.complete", recycling)                       
237                                        year_activeObjects.unshift(o);
238                                        //trace("----------------- \n")
239                                }
240                        }
241                       
242                       
243                       
244                       
245                        if (availability.month_available && m_allow == true )
246                        {               
247                                M++
248                                contribSon = month.getContribution()
249                               
250                               
251                                if (contribSon.url != "empty" &&  m_mixList.present(contribSon.date) == false)
252                                {
253                                        m_allow = false
254                                        m_mixList.add(contribSon.date)
255                                        availability.new_month_used()
256                                        o = month_pool.object;
257                                        o.start("month",M,contribSon.url,contribSon.date)
258                                        o.addEventListener("DISPLAY.complete", recycling)                       
259                                        month_activeObjects.unshift(o);
260                                       
261                                }
262                        }
263
264                        if (availability.day_available  && d_allow == true )
265                        {               
266                                D++
267                                contribSon = day.getContribution()
268                               
269                                                                               
270                                if (contribSon.url != "empty" && d_mixList.present(contribSon.date) == false )
271                                {       
272                                        d_allow = false
273                                        d_mixList.add(contribSon.date)
274                                        availability.new_day_used()
275                                        o = day_pool.object;
276                                        o.start("day",D,contribSon.url,contribSon.date)
277                                        o.addEventListener("DISPLAY.complete", recycling)                       
278                                        //o.addEventListener("MOVE.camera", move)                       
279                                        day_activeObjects.unshift(o);
280                                       
281                                }
282                        }
283                       
284                       
285                        trace("h_allow ="+h_allow)
286                        if (availability.hour_available && h_allow == true)
287                        {               
288                                H++
289                               
290                               
291                                contribSon = hour.getContribution()
292                               
293                                if (contribSon.url != "empty"  && h_mixList.present(contribSon.date) == false)
294                                {       
295                                        h_allow = false
296                                        trace("sound present ")
297                                        h_mixList.add(contribSon.date)
298                                        availability.new_hour_used()
299                                                                               
300                                        o = hour_pool.object;
301                                        o.start("hour",H,contribSon.url,contribSon.date)
302                                        o.addEventListener("DISPLAY.complete", recycling)       
303                                        //o.addEventListener("MOVE.camera", move)                       
304                                       
305                                        hour_activeObjects.unshift(o);
306                                       
307                                }
308                        }
309
310                       
311                       
312                               
313                }
314               
315               
316       
317               
318               
319               
320               
321                public function writePresent(url:String):void
322                {
323                        hour.addContribution(new ContributionSon(url, new Date().time))
324                        availability.new_hour_available()
325                }
326               
327               
328               
329               
330                private function recycling(e:*):void
331                {
332                        //trace("---------------------------")
333                        //trace("::: recycle ::: from "+e.currentTarget.name)
334                       
335                        switch (e.currentTarget.period)
336                        {
337                                case "year":
338                                y_mixList.remove(e.currentTarget._date)
339                                year_pool.object = year_activeObjects.pop();
340                                availability.new_year_available()
341                                y_timer_allow = new Timer(1000,1) ;
342                                y_timer_allow.delay = y_wait
343                                y_timer_allow.addEventListener( TimerEvent.TIMER_COMPLETE, y_allow_y ) ;
344                                y_timer_allow.start();
345                                Y--
346                                break;
347                               
348                                case "month":
349                                m_mixList.remove(e.currentTarget._date)
350                                month_pool.object = month_activeObjects.pop();
351                                availability.new_month_available()
352                                m_timer_allow = new Timer(1000,1) ;
353                                m_timer_allow.delay = h_wait / month.total;
354                                m_timer_allow.addEventListener( TimerEvent.TIMER_COMPLETE, m_allow_m ) ;
355                                m_timer_allow.start();
356                                M--
357                                break;
358                               
359                                case ("day"):
360                                d_mixList.remove(e.currentTarget._date)
361                                day_pool.object = day_activeObjects.pop();
362                                availability.new_day_available()
363                                d_timer_allow = new Timer(1000,1) ;
364                                d_timer_allow.delay = h_wait / day.total;
365                                d_timer_allow.addEventListener( TimerEvent.TIMER_COMPLETE, d_allow_d ) ;
366                                d_timer_allow.start();
367                                D--
368                                break;
369                               
370                                case ("hour"):
371                                h_mixList.remove(e.currentTarget._date)
372                                hour_pool.object = hour_activeObjects.pop();
373                                availability.new_hour_available()
374                                e.currentTarget.removeEventListener("DISPLAY.complete", recycling)
375                                h_timer_allow = new Timer(1000,1) ;
376                                h_timer_allow.delay = h_wait / hour.total;
377                                h_timer_allow.addEventListener( TimerEvent.TIMER_COMPLETE, h_allow_h ) ;
378                                h_timer_allow.start();
379                               
380                                //trace("hour --- end sound, wait .... ")
381                                //trace("h_allow delay =" + (h_wait / hour.total))
382                       
383                               
384                               
385                               
386                                H--
387                                break;
388                               
389                                case ("present"):
390                                trace("recycle present ")
391                                present_pool.object = present_activeObjects.pop();
392                                P--
393                                break;
394                               
395                                default:
396                                trace("Error when try to recycling a Object from period:"+ e.currentTarget.period )
397                               
398                               
399                        }
400                               
401                       
402                }
403               
404                private function h_allow_h (e:TimerEvent):void
405                {
406                        h_allow = true;
407                        trace("allow :") 
408                }
409               
410                private function d_allow_d (e:TimerEvent):void
411                {
412                        d_allow = true;
413                        trace("d allow d") 
414                }
415               
416                private function m_allow_m (e:TimerEvent):void
417                {
418                        m_allow = true;
419                        trace("m allow m") 
420                }
421               
422                private function y_allow_y (e:TimerEvent):void
423                {
424                        y_allow = true;
425                        trace("y allow y") 
426                }
427               
428        }               
429       
430}       
431
432
433
434       
Note: See TracBrowser for help on using the repository browser.