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

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

Nettoyage des imports principalement

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