source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/display/MyPopUpSon.as

Last change on this file was 2864, checked in by ths, 10 years ago

mise à jour après refactoring - (vegas)

  • Property svn:executable set to *
File size: 31.2 KB
Line 
1/*
2 MyPopup gère tous les popups de contributions. Audio et texte.
3
4 Erreurs connus:
5 - embed des labels pour langues non-latine
6*/
7package display
8{
9       
10       
11        import vegas.events.LocalizationEvent
12        import vegas.i18n.Localization
13       
14        import vegas.text.CoreTextField;
15    import vegas.display.Background;
16       
17        import vegas.media.*;
18        import lunas.display.bar.SimpleProgressbar
19       
20        import flash.display.Bitmap;
21        import flash.display.MovieClip;
22        import flash.display.Shape;
23        import flash.display.Sprite;
24        import flash.events.*;
25        import flash.filters.DropShadowFilter;
26        import flash.geom.Rectangle;
27        import flash.media.Microphone;
28        import flash.net.*;
29        import flash.text.TextFieldAutoSize;
30        import flash.text.Font;
31        import flash.text.StyleSheet;
32        import flash.text.TextFormat;
33        import flash.ui.Mouse;
34
35        import myLib.events.ButtonEvent;
36        import myLib.data.DataProvider;
37        import myLib.styles.TextStyle;
38        import myLib.controls.ComboBox;
39        import myLib.controls.TextArea;
40        import myLib.controls.Button;
41        import myLib.controls.RadioButton;
42        import myLib.controls.Slider;
43
44       
45        import graphics.Align
46        import graphics.Direction
47        import graphics.FillGradientStyle;
48        import graphics.drawing.Pen
49        import graphics.drawing.LinePen;
50        import graphics.FillStyle;
51        import graphics.LineStyle;
52        import graphics.drawing.RectanglePen;
53        import graphics.display.DisplayObjects
54        import graphics.transitions.Timer
55        import graphics.transitions.TweenLite
56        import graphics.transitions.easings.*
57
58        import system.events.ActionEvent;
59        import system.formatters.DateFormatter;
60
61        import com.ths.server.red5.ConnectTo;
62        import com.ths.server.red5.NetStreamMicrophone;
63        import com.ths.utils.sharedObject.Cookies;
64        import com.ths.utils.lang.LangConversion;
65        import com.ths.utils.data.Censure;
66        import com.ths.ui.LineTracer;
67
68
69       
70
71    /**
72     * Vue d'une popUp de base son.
73     */
74    public class MyPopUpSon extends Background
75    {
76
77                private var fond: Background = new Background()
78                private var txt_sature: CoreTextField = new CoreTextField()
79                private var connecteur:ConnectTo ;
80                private var stream:NetStreamMicrophone ;
81                private var micro:Microphone ;
82                private var area_sature:Background = new Background() ;
83
84                private var conteneur_btn : Sprite = new Sprite ()
85                private var conteneur_saturation : Sprite = new Sprite ()
86                private var stop_btn:Button
87                private var play_btn:Button
88                private var effacer_btn:Button
89                private var record_btn:Button
90                private var envoyer_btn:Button
91
92                private var fichier :String;
93                public var domaine:String;
94                public var max_son : int
95
96                public var timeline: LineTracer;
97                public var timelineFD: LineTracer;
98                public var timer: Timer
99                private var progress : SimpleProgressbar = new SimpleProgressbar
100                private var vol_detected : SimpleProgressbar = new SimpleProgressbar
101                private var duration : Number
102                private var slider : Slider
103                private var i : int = new int (0);
104                private var vol:int = new int(0)
105                public var saturation_declenchement:int
106                public var saturation:int
107                private var btn_valid_saturation:Button = new Button()
108
109                private var etat : String;
110                private var connected:Boolean = false
111
112                public function MyPopUpSon()
113                {
114            // super();
115
116                        this.alpha=0
117                }
118
119               
120        /**
121         * Cette méthode est invoqué lorsque l'instance est ajouté à la liste d'affichage.
122         */
123        override protected function addedToStage(e:Event = null):void
124        {
125                        logger.log( this + " " + e ) ;
126
127                        DisplayObjects.align( this , new Rectangle( 0, 0 , this.stage.stageWidth, this.stage.stageHeight) , Align.CENTER);
128                        this.x = -1000
129                        popup();
130
131
132        }
133
134                public function show(e:Event):void
135                {
136                        if (e.type != "masque")
137                        {
138                                if (toggle)
139                                {
140
141                                        // DISPARAIT
142                                        alphaTweener = new TweenLite (this, "alpha",null, this.alpha, 0, tweenDuration, true) ;
143                                        alphaTweener.start()
144                                        toggle = false
145
146                                        this.x = -1000
147
148                                        if (connected)
149                                        {
150                                                connecteur.removeEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
151                                                connecteur.close()
152                                                stream.close()
153                                                effacer_btn.enabled = false
154                                                envoyer_btn.enabled = false
155
156                                        }
157                                        dispatchEvent(new Event("volumeON"));
158                                        //if (etat == "stop") envoyer_son(e)
159                                        progress.position = 0
160                                }
161                                else
162                                {
163
164
165                                        // APPARAIT
166                                        dispatchEvent(new Event("volumeOFF"));
167                                        progress.position = 0
168                                        DisplayObjects.align( this , new Rectangle( 0, 0 , this.stage.stageWidth, this.stage.stageHeight) , Align.CENTER);
169                                        dispatchEvent(new Event("masque"));
170                                        session_son =new Date().getTime()
171                                        alphaTweener = new TweenLite (this, "alpha",null, this.alpha,1, tweenDuration, true) ;
172                                        alphaTweener.start()
173                                        toggle = true ;
174
175                                        connecteur = new ConnectTo("rtmp://karl.arscenic.org/reflet")//rtmp://88.191.102.232/oflaDemo")
176                                        connecteur.makeConnection();
177                                        connecteur.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
178                                       
179                                        micro = Microphone.getMicrophone();
180                                        micro.setLoopBack(false)
181                                        micro.rate = 44
182
183                                        micro.setSilenceLevel(1)
184                                        micro.setUseEchoSuppression(true)
185
186                                        fichier = new String ("reflet_son_-_"+domaine+"_-_"+new Date().fullYear+"_"+new Date().month+"_"+new Date().date+"_"+new Date().hours+"_"+new Date().minutes+"_"+new Date().seconds+"_"+new Date().milliseconds)
187
188                                        addChild (conteneur)
189
190                                        //trace("connecteur:"+connecteur.netStreamStatusHandler)
191                                        //trace("stream" + stream)
192                                        //trace("microphone" + micro.activityLevel)
193
194                                        // connexion
195                                        effacer_btn.enabled = false
196                                        envoyer_btn.enabled = false
197                                }
198                        }
199                        else
200                        {
201                                // DISPARAIT
202                                alphaTweener = new TweenLite (this, "alpha",null, this.alpha, 0, tweenDuration, true) ;
203                                alphaTweener.start()
204                                toggle = false
205                                if (conteneur.root != null ) {
206
207                                        this.x = -1000;
208
209
210                                        if (connected)
211                                        {
212                                                connecteur.removeEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
213                                                connecteur.close()
214                                                stream.close()
215                                        }
216
217                                        dispatchEvent(new Event("volumeON"));
218                                        progress.position = 0
219
220                                }
221                        }
222                }
223
224                /**
225                 * Cette méthode fixe le positionnement du popup
226                 */
227                private function popup():void
228                {
229                        this.addChild(fond)
230                        fond.fill = new FillGradientStyle( "radial" , [0xffffff, 0xffffff] , [1, 1], [0, 100] )
231                        fond.gradientRotation = 0
232                        fond.h = h - 30
233                        fond.w = w - 20
234                        fond.useGradientBox = true
235                        fond.filters = [new DropShadowFilter(1,120,0,0.7,5,5)]
236                        fond.update()
237                        DisplayObjects.align( fond, new Rectangle( 0, 20 , this.w , this.h) , Align.TOP);
238
239
240                        //trace("popup_son")
241
242                        // prise en main !
243                        var shape                                       : Shape                 = new Shape();
244                        var header_shape_pen            : RectanglePen  = new RectanglePen( shape , 0, 0, 0, 0,  Align.LEFT_TOP );
245                        header_shape_pen.useClear       = true ;
246            header_shape_pen.useEndFill = true ;
247            header_shape_pen.fill               = new FillStyle( header_fill_color , 0 ) ;
248            header_shape_pen.line               = new LineStyle( header_line_epaisseur, header_line_color , 0) ;
249            header_shape_pen.draw( 0, 0, this.w, header_hauteur ) ;
250                        DisplayObjects.align( shape , new Rectangle( 0 , 0 , this.w , this.h ) , Align.TOP_LEFT );
251
252                        header_ui.buttonMode = true
253                        header_ui.mouseEnabled = true
254
255                        header_ui.addChild( shape )
256                        header_ui.addEventListener( MouseEvent.MOUSE_UP , stopdrag)
257                        header_ui.addEventListener( MouseEvent.MOUSE_DOWN       , startdrag)
258                        conteneur.addChild(header_ui)
259
260
261                        // TITRE
262                        this.titre.embedFonts = true
263                        this.titre.autoSize     = TextFieldAutoSize.LEFT
264                        this.titre.antiAliasType = "advanced"
265
266                        if ( popup_son_header_logo != null )
267                        {
268                           DisplayObjects.align( this.popup_son_header_logo , new Rectangle( marge, 0 , this.w, header_hauteur), Align.LEFT);
269                           DisplayObjects.align( titre , new Rectangle( marge + popup_son_header_logo.width + this.espace_logo_titre, 0 , this.w, header_hauteur), Align.TOP_LEFT);
270                           conteneur.addChild(popup_son_header_logo)
271                        }
272
273                        else DisplayObjects.align( titre , new Rectangle( 0, 0 , 250, 15), Align.LEFT);
274
275                        conteneur.addChild(titre);
276
277                        conteneur_croix.buttonMode = true
278                        conteneur_croix.name="annuler"
279                        conteneur.addChild(conteneur_croix)
280                        conteneur_croix.addChild(header_croix)
281                        conteneur_croix.addEventListener( MouseEvent.CLICK, show)
282                        DisplayObjects.align( header_croix , new Rectangle( -marge, 0 , this.w , header_hauteur) , Align.RIGHT);
283
284
285                        DisplayObjects.align( conteneur_body, new Rectangle( 0, this.header_hauteur, this.w, this.h - this.header_hauteur ) , Align.TOP_LEFT);
286                        conteneur.addChild(conteneur_body)
287
288                        // --> Texte d'invitation.
289                        invitation.width                = this.width - marge * 2
290                        invitation.embedFonts   = true
291                        invitation.antiAliasType= "advanced"
292                        invitation.autoSize             = TextFieldAutoSize.LEFT
293                        invitation.wordWrap     = true
294                        invitation.x                    = marge+invit_X
295                        invitation.y                    = marge+invit_Y
296                        conteneur_body.addChild( invitation)
297
298
299                        // --> language_label
300                        language_label.width = 200
301                        language_label.height = 100
302                        language_label.embedFonts       = true
303                        language_label.antiAliasType = "advanced"
304                        language_label.autoSize = TextFieldAutoSize.LEFT
305                        language_label.wordWrap = true
306                        language_label.x                = invitation.x
307                        language_label.y                = invitation.y+invitation.height+marge+10
308                        conteneur_body.addChild(language_label)
309
310
311                        // combo_box
312                        tableau_label_court = langue_audio_disponible.split(",")
313                        tableau_label_long  = langue_audio_disponible_long.split(",")
314
315                        var xml_string : String = "<root>";
316                        tableau_label_court.forEach  ( function navigate (element:*, index:int, arr:Array):void { xml_string += "<item label=\""+tableau_label_long[index]+"\" data=\""+tableau_label_court[index]+"\"/>" } )
317                        xml_string += "</root>";
318
319                        combo_box.dataProvider = new DataProvider(new XML(xml_string));;
320                        combo_box.setValue(langConversion.codeToCountry(langue_audio_defaut,tableau_label_court,tableau_label_long) )
321
322                        //trace("langue defaut:"+langConversion.codeToCountry(langue_audio_defaut,tableau_label_court,tableau_label_long) )
323                        combo_box.x = fond.width + fond.x - combo_box.width
324                        combo_box.y = language_label.y
325
326                        combo_box.addEventListener(Event.CHANGE, changement_langue_enregistrement)
327                        conteneur_body.addChild(combo_box)
328                        langue = langue_audio_defaut
329
330
331
332                        slider = new Slider()
333                        slider.maximum = 100
334                        slider.minimum = 0
335                        slider.value=50
336                        slider.addEventListener(Event.CHANGE, function(e:Event):void {
337                                volume_retour.text = String(Math.floor(e.currentTarget.getValue())),micro.gain=e.currentTarget.getValue()})
338                        conteneur_body.addChild(slider)
339
340
341
342                        volume.width = 200
343                        volume.height = 100
344                        volume.embedFonts       = true
345                        volume.antiAliasType = "advanced"
346                        volume.autoSize = TextFieldAutoSize.LEFT
347                        volume.wordWrap = true
348                        volume.x                = invitation.x
349                        volume.y                = language_label.y+language_label.height+marge+10
350
351                        conteneur_body.addChild(volume)
352
353
354
355
356
357                        volume_retour.embedFonts        = true
358                        volume_retour.background = true
359                        volume_retour.backgroundColor = 0x999999
360                        volume_retour.antiAliasType = "advanced"
361                        volume_retour.autoSize  = TextFieldAutoSize.LEFT
362                        volume_retour.text = "50"
363                        conteneur_body.addChild(volume_retour)
364
365
366                        conteneur_body.addChild(vol_detected)
367                        vol_detected.backgroundFillStyle = new FillStyle(0x333333, 1)
368                        vol_detected.backgroundLineStyle = new LineStyle(1,0x666666, 1)
369
370                        vol_detected.barLineStyle = new LineStyle (1,0x000000, 1)
371                        vol_detected.barFillStyle = new FillStyle (0x364458,1)
372
373                        vol_detected.maximum = 100
374                        vol_detected.minimum = 0
375
376
377                        // --> souhait
378                        souhait.width = 200
379                        souhait.height = 100
380                        souhait.embedFonts      = true
381                        souhait.antiAliasType = "advanced"
382                        souhait.autoSize        = TextFieldAutoSize.LEFT
383                        souhait.wordWrap = true
384                        souhait.x               = invitation.x
385                        souhait.y               = volume.y+volume.height+marge+10
386                        conteneur_body.addChild(souhait)
387
388
389                        conteneur_body.addChild (conteneur_btn)
390                        record_btn = new Button(conteneur_btn)
391                        record_btn.autoSize = true
392
393                        envoyer_btn = new Button(conteneur_btn)
394                        envoyer_btn.autoSize = true
395                        envoyer_btn.enabled = false
396                        envoyer_btn.name = "envoyer"
397
398                        effacer_btn = new Button (conteneur_btn)
399                        effacer_btn.name = "effacer"
400                        effacer_btn.autoSize = true
401                        effacer_btn.enabled = false
402
403                        stop_btn = new Button()
404                        play_btn = new Button ()
405                        play_btn.enabled = false
406
407                        // --> souhait
408
409                        duree.embedFonts        = true
410                        duree.antiAliasType = "advanced"
411                        duree.autoSize  = TextFieldAutoSize.LEFT
412                        conteneur_body.addChild(duree)
413
414
415                        compteur.embedFonts     = true
416                        compteur.antiAliasType = "advanced"
417                        compteur.text = String (max_son)
418                        compteur.width = 20
419                        conteneur_body.addChild(compteur)
420
421
422                        timer = new Timer(100, max_son*10 );
423            timer.addEventListener( TimerEvent.TIMER , timerHandler);
424            timer.addEventListener( TimerEvent.TIMER_COMPLETE , stop);
425
426
427                        conteneur_body.addChild(progress)
428                        progress.backgroundFillStyle = new FillStyle(0x333333, 1)
429                        progress.backgroundLineStyle = new LineStyle(1,0x666666, 1)
430                        progress.barLineStyle = new LineStyle (1,0x000000, 1)
431                        progress.barFillStyle = new FillStyle (0x364458,1)
432                        progress.maximum = max_son*10
433                        progress.minimum = 0
434
435
436                        // popup SATURATIOn
437
438
439
440                        txt_sature.embedFonts   = true
441                        txt_sature.antiAliasType = "advanced"
442                        txt_sature.autoSize     = TextFieldAutoSize.LEFT
443                        txt_sature.wordWrap = true
444                        txt_sature.width = this.w / 2;
445                        txt_sature.height = this.h / 2 ;
446
447
448
449                        btn_valid_saturation.autoSize=true
450                        btn_valid_saturation.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void {
451                        if (conteneur_body.contains(conteneur_saturation)) conteneur_body.removeChild(conteneur_saturation)
452
453                        })
454
455                        area_sature.fill = new FillStyle( 0x333333 , 0.6 ) ;
456                        area_sature.line = new LineStyle( 1, 0x333333, 0.7 ) ;
457                        area_sature.w    = this.w - 70;
458                        area_sature.h    = this.h - 80;
459                        area_sature.bottomLeftRadius = 3
460                        area_sature.bottomRightRadius = 3
461                        area_sature.topRightRadius = 3
462                        area_sature.topLeftRadius = 3
463
464                        area_sature.filters = [new DropShadowFilter(1, 120, 0x000000, 0.7, 5, 5)]
465                        area_sature.update()
466
467
468                        conteneur_saturation.addChild(area_sature ) ;
469                        conteneur_saturation.addChild(txt_sature)
470                        conteneur_saturation.addChild(btn_valid_saturation)
471
472                        DisplayObjects.align( txt_sature, new Rectangle( 0, this.header_hauteur, this.w, this.h - this.header_hauteur ) , Align.CENTER);
473                        DisplayObjects.align( area_sature, new Rectangle( 0, this.header_hauteur, this.w, this.h - this.header_hauteur ) , Align.CENTER);
474                        DisplayObjects.align( btn_valid_saturation, new Rectangle( area_sature.x-20, area_sature.y-20, area_sature.w, area_sature.h ) , Align.BOTTOM_RIGHT);
475
476                }
477
478
479
480
481
482
483
484                private function NetStatusHandler(event:NetStatusEvent):void
485                {
486
487                        trace("e : " + event.info.code)
488                        trace("--------------------------")
489                       
490                        if (event.info.code == "NetConnection.Connect.Success")
491                        {
492
493                                trace("connexion ok")
494                                stream = new NetStreamMicrophone(connecteur, fichier, 'flv', micro);
495                                etat = "connecte"
496                                initEvent(true)
497
498                                connected = true
499                        }
500                        else
501                        {
502                                trace("connexion false")
503                                connected = false
504                                initEvent(false)
505                        }
506                        trace("--------------------------")
507                }
508
509                private function initEvent(e:Boolean):void
510                {
511                        if (e)
512                        {
513                                stage.addEventListener(Event.ENTER_FRAME, etat_microphone )
514                                record_btn.addEventListener( MouseEvent.CLICK, recorder)
515                                play_btn.addEventListener(MouseEvent.CLICK, play)
516                                stop_btn.addEventListener(MouseEvent.CLICK, stop)
517                                envoyer_btn.addEventListener(MouseEvent.CLICK,envoyer_son)
518                                effacer_btn.addEventListener(MouseEvent.CLICK,envoyer_son)
519                        }
520                }
521
522                private function recorder(e:MouseEvent):void
523                {
524
525                        stream.record()
526                        etat = "enregistre"
527                        conteneur_croix.mouseEnabled = false
528                        if (conteneur_btn.contains(record_btn))conteneur_btn.removeChild(record_btn)
529                        conteneur_btn.addChild(stop_btn)
530                        timer.start();
531                        progress.barFillStyle = new FillStyle (0xFF0000,1)
532                }
533                private function play (e:MouseEvent):void
534                {
535                        conteneur_croix.mouseEnabled = false
536                        etat="lit"
537                        stream.playStream()
538                        if (conteneur_btn.contains(play_btn)) conteneur_btn.removeChild(play_btn)
539                        conteneur_btn.addChild(stop_btn)
540                        envoyer_btn.enabled = false
541                        effacer_btn.enabled = false
542                        timer.start();
543                        progress.barFillStyle = new FillStyle (0x008000,1)
544                }
545
546
547
548                private function etat_microphone(e:Event):void
549                {
550
551                                vol_detected.position = micro.activityLevel
552                                if (micro.activityLevel<=84 )   vol_detected.barFillStyle = new FillStyle (0x009900,1)
553                                if (micro.activityLevel>=85&&micro.activityLevel<=94 ) vol_detected.barFillStyle = new FillStyle (0xCC9900,1)
554                                if (micro.activityLevel>=95)    vol_detected.barFillStyle = new FillStyle (0xFF0000,1)
555                                if (stream.isRecording())        { if (micro.activityLevel > saturation_declenchement) { i+=micro.activityLevel }}
556                                if (slider.value < 10) record_btn.enabled = false ; else record_btn.enabled = true
557                                vol_detected.barLineStyle = new LineStyle (1,0x000000, 1)
558                }
559
560                private function stop (e:*):void
561                {
562                        etat = "stop"
563                        conteneur_croix.mouseEnabled = true
564                        //trace((i/duration))
565                        stream.stopRecord()
566                        conteneur_btn.removeChild(stop_btn)
567                        conteneur_btn.addChild(play_btn)
568                        envoyer_btn.enabled = true
569                        effacer_btn.enabled = true
570                        play_btn.enabled = stream.isPlayable()
571                        //compteur.text = String(duration)
572                        timer.stop()
573                        progress.maximum = duration
574                        timer = new Timer(100, duration * 10 );
575                        timer.addEventListener( TimerEvent.TIMER , timerHandlerRelect);
576            timer.addEventListener( TimerEvent.TIMER_COMPLETE , stop);
577
578                        if((i/duration)>saturation) pop_saturation(true,e)
579                }
580
581                private function pop_saturation(affiche:Boolean,e:*):void
582                {
583                        conteneur_croix.mouseEnabled = false
584                        i = 0
585                        if (affiche) conteneur_body.addChild( conteneur_saturation )
586
587                }
588
589                public function timerHandler(event:TimerEvent):void
590        {
591           compteur.text = String (max_son - timer.currentCount/10)
592                   progress.position = timer.currentCount
593                   duration = timer.currentCount/10
594        }
595
596                public function timerHandlerRelect(event:TimerEvent):void
597        {
598           compteur.text = String (timer.currentCount/10)
599                   progress.position = timer.currentCount/10
600
601        }
602                public var id_contrib:int
603                public var url_son : String
604
605                private function envoyer_son(e:*):void
606                {
607
608                        trace("-------> CONTRIBTION SONORE")
609                        trace("-------> domaine : " +domaine)
610                        trace("-------> fichier : " + fichier)
611                        trace("-------> langue : " + langue)
612                        trace("-------> duree : " + duration)
613                        trace("-------> type : " + e.currentTarget.name)
614                        trace("-------> identifiant cookie : "+ new Cookies("reflet_user").read("user_reflet"))
615                        trace("-------> identifiant session : " + session_son)
616                        trace("-------> tag : " + "toto,tata")
617                        //trace("")
618                        //trace("")
619                        //
620
621                        var requete : URLRequest   = new URLRequest ("http://global.reflets.org/spip.php?action=reflet_inserer_son")//("http://global.reflet-web.net/spip.php?action=reflet_inserer_texte")
622                        var variable: URLVariables = new URLVariables()
623                        variable.domaine= domaine
624                        variable.fichier = fichier
625                        variable.lang = langue
626                        variable.type = e.currentTarget.name
627                        variable.identifiant_cookie = new Cookies("reflet_user").read("user_reflet")
628                        variable.identifiant_session = session_son
629
630                        requete.data = variable
631                        requete.method = "POST"
632                        //sendToURL(requete)
633
634
635                        effacer_btn.enabled = false
636                        envoyer_btn.enabled = false
637
638
639                        if (e.currentTarget.name == "envoyer" )
640                        {
641                                compteur.text = String (max_son)
642                                timer = new Timer(100, max_son*10 );
643                                timer.addEventListener( TimerEvent.TIMER , timerHandler);
644                                timer.addEventListener( TimerEvent.TIMER_COMPLETE , stop);
645                                progress.maximum = max_son * 10
646
647
648                                conteneur_btn.removeChild(play_btn)
649                                conteneur_btn.addChild(record_btn)
650                                show(e);
651                                fichier = new String ("reflet_son_-_"+domaine+"_-_"+new Date().fullYear+"_"+new Date().month+"_"+new Date().date+"_"+new Date().hours+"_"+new Date().minutes+"_"+new Date().seconds+"_"+new Date().milliseconds)
652
653                                var urlLoader:URLLoader = new URLLoader();
654                                urlLoader.addEventListener ( Event.COMPLETE,
655                                function (e:Event):void
656                                {
657                                                //trace("brut: "+ (e.target as URLLoader).data)
658                                                var retour : XML =  new XML ( (e.target as URLLoader).data)
659                                                //trace("xml:"+retour.chemin_son)
660                                                url_son = retour.chemin_son
661                                                id_contrib = retour.id_contrib_son
662                                                new Cookies("reflet_sound_contribution").write("name",retour.chemin_son )//"common")//(e.target as URLLoader).data)
663                                                trace("url son ===>"+url_son)
664                                                dispatchEvent(new Event("send_son"));
665                                }
666                                );
667                                urlLoader.load(requete);
668
669
670
671
672
673
674                        }
675                        if (e.currentTarget.name == "effacer" )
676                        {
677
678                                fichier = new String ("reflet_son_-_"+domaine+"_-_"+new Date().fullYear+"_"+new Date().month+"_"+new Date().date+"_"+new Date().hours+"_"+new Date().minutes+"_"+new Date().seconds+"_"+new Date().milliseconds)
679                                compteur.text = String (max_son)
680                                timer = new Timer(100, max_son*10 );
681                                timer.addEventListener( TimerEvent.TIMER , timerHandler);
682                                timer.addEventListener( TimerEvent.TIMER_COMPLETE , stop);
683                                progress.maximum = max_son * 10
684
685                                conteneur_btn.removeChild(play_btn)
686                                conteneur_btn.addChild(record_btn)
687
688                        }
689                        if (e.currentTarget.name=="annuler" )
690                        {
691                                fichier = new String ("reflet_son_-_"+domaine+"_-_"+new Date().fullYear+"_"+new Date().month+"_"+new Date().date+"_"+new Date().hours+"_"+new Date().minutes+"_"+new Date().seconds+"_"+new Date().milliseconds)
692                                compteur.text = String (max_son)
693                                timer = new Timer(100, max_son*10 );
694                                timer.addEventListener( TimerEvent.TIMER , timerHandler);
695                                timer.addEventListener( TimerEvent.TIMER_COMPLETE , stop);
696                                progress.maximum = max_son * 10
697
698                        }
699
700                }
701
702                private function changement_langue_enregistrement(e:Event):void
703                {
704                        langue = e.target.selectedItem.data
705                }
706
707                private  var langue : String
708                public function changeLocalization( e:LocalizationEvent ):void
709        {
710                        langue_label_defaut = String ( e.current)
711
712                        this.titre.defaultTextFormat    = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_titre)
713                        this.titre.htmlText                             = e.getLocale("popup_son").titre
714
715                        this.invitation.defaultTextFormat       = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_invitation,0x000000)
716                        this.invitation.text                            = e.getLocale("popup_son").invitation
717
718                        this.language_label.defaultTextFormat   = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_language_label,0x333333)
719                        this.language_label.text                                = e.getLocale("popup_son").language_label
720
721                        this.volume_retour.defaultTextFormat    = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_souhait,0x333333)
722                        this.volume_retour.text = "50"
723
724                        this.souhait.defaultTextFormat  = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_souhait,0x333333)
725                        this.souhait.text                               = e.getLocale("popup_son").souhait
726
727                        this.duree.defaultTextFormat    = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_duree,0x333333)
728                        this.duree.text                                 = e.getLocale("popup_son").duree
729
730                        this.compteur.defaultTextFormat = new TextFormat(e.getLocale("parametres_globaux").font, e.getLocale("popup_son").taille_duree, 0x333333)
731                        this.compteur.text                              = String(max_son)
732
733                        this.volume.defaultTextFormat   = new TextFormat(e.getLocale("parametres_globaux").font, e.getLocale("popup_son").taille_volume,0x333333)
734                        this.volume.text                                = e.getLocale("popup_son").volume
735
736                        this.envoyer_btn.textField.defaultTextFormat= new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_envoyer_btn)
737                        this.envoyer_btn.text                                           = e.getLocale("popup_son").envoyer_btn
738
739                        this.record_btn.textField.defaultTextFormat     = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_record_btn)
740                        this.record_btn.text                                            = e.getLocale("popup_son").record_btn
741
742                        this.effacer_btn.textField.defaultTextFormat= new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_effacer_btn)
743                        this.effacer_btn.text                                           = e.getLocale("popup_son").effacer_btn
744
745                        this.stop_btn.textField.defaultTextFormat       = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_stop_btn)
746                        this.stop_btn.text                                                      = e.getLocale("popup_son").stop_btn
747
748                        this.play_btn.textField.defaultTextFormat       = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_play_btn)
749                        this.play_btn.text                                                      = e.getLocale("popup_son").play_btn
750
751                        this.txt_sature.defaultTextFormat       = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_saturation,0xFFFFFF)
752                        this.txt_sature.text                            = e.getLocale("popup_son").saturation
753                        //
754                        this.btn_valid_saturation.textField.defaultTextFormat   = new TextFormat(e.getLocale("parametres_globaux").font,e.getLocale("popup_son").taille_btn_valid_saturation)
755                        this.btn_valid_saturation.text                          = e.getLocale("popup_son").btn_valid_saturation
756
757
758                        volume.y                = language_label.y + language_label.height + 10
759
760
761
762                        slider.x = volume.x + volume.width + 5
763                        slider.y = volume.y + volume.height / 2
764
765
766
767
768                        combo_box.x = slider.x
769                        slider.width -=25
770                        slider.x += 25
771
772                        volume_retour.y         = slider.y - volume_retour.height/2
773                        volume_retour.x         = slider.x - volume_retour.width - 7
774                        volume_retour.selectable = false
775
776                        vol_detected.width = slider.width
777                        vol_detected.x = slider.x
778                        vol_detected.y = slider.y + 10
779
780
781                        souhait.y = volume.y + volume.height + 10
782
783                        record_btn.x = 0
784                        record_btn.y = 0
785
786                        stop_btn.x = 0
787                        stop_btn.y = 0
788                        stop_btn.width = record_btn.width
789
790                        play_btn.x = 0
791                        play_btn.y = 0
792                        play_btn.width = record_btn.width
793
794                        envoyer_btn.x = record_btn.x + record_btn.width + 15
795                        envoyer_btn.y = 0
796
797                        effacer_btn.x = envoyer_btn.x + envoyer_btn.width + 15
798                        effacer_btn.y = 0
799
800                        DisplayObjects.align( conteneur_btn, new Rectangle( 0, 0, this.w, this.h ) , Align.CENTER);
801                        conteneur_btn.y = souhait.y + 25
802
803                        progress.width =record_btn.width+play_btn.width+effacer_btn.width+15
804                        progress.x = conteneur_btn.x
805                        progress.y = conteneur_btn.y+25
806
807                        compteur.x = conteneur_btn.x //duree.x+duree.width + 5
808                        compteur.y = conteneur_btn.y + 40 //duree.y
809
810                        duree.x = compteur.x+compteur.width
811                        duree.y = compteur.y
812
813
814
815
816                        //btn_valid_saturation.y = area_sature.y+area_sature.height
817                        //btn_valid_saturation.x = area_sature.width/2 + area_sature.x + btn_valid_saturation.width/2
818
819
820
821                }
822                private function startdrag( e:MouseEvent):void
823                {
824                        startDrag()
825                        //trace("->drag START")
826                        alpha = .8
827                }
828
829                private function stopdrag(e:MouseEvent):void
830                {
831                        stopDrag()
832                        //trace("->drag STOP")
833                        alpha = 1
834                }
835
836                /* ------------------------------------------------*/
837
838                /**
839                 * Object bouton envoyer
840                 */
841                public var bouton_envoyer : Button = new Button()
842
843                /**
844                 * Object bouton arreter
845                 */
846                public var bouton_arreter : Button = new Button()
847
848
849
850                /*-------- PROPRIETE DESCRIPTIVE DES OBJETCS ------*/
851
852                /**
853                * Hauteur du champs de saisies en pixel.
854                */
855                public var zone_de_saisie_hauteur:int;
856
857                /**
858                 * Largeur du champs de saisies en pixel.
859                 */
860                public var  zone_de_saisie_largeur:int;
861
862                /**
863                 * Hauteur du header en pixel ( par défaut: 15 px ).
864                 */
865                public var header_hauteur : int = 15
866
867                /**
868                 * Couleur de contour du header.
869                 */
870                public var header_line_color : uint = 0xFFFFFF;
871
872                /**
873                 * Largeur du contour du header ( Par défaut : .5 ).
874                 */
875                public var header_line_epaisseur : Number = 0.1;
876
877                /**
878                 * Opacité du contour du header ( Par défaut : 1 ).
879                 */
880                public var header_line_alpha : Number = 1
881
882                /**
883                 * Couleur de fond du header.
884                 */
885                public var header_fill_color : uint = 0xFFFFFF;
886
887                /**
888                 * Alpha du fond du header ( Par défaut : 0.5 ).
889                 */
890                public var header_fill_alpha : Number = 0.5
891
892
893                /**
894                 *  Variable de type toggle  pour faire le toggle affichage
895                 */
896                private var toggle:Boolean
897
898
899                /**
900                 * Object Twwen pour alpha
901                 */
902                private var alphaTweener                :       TweenLite ;
903
904
905                /**
906                 * Object Twwen pour compteur
907                 */
908                private var compteurTweener             :       TweenLite ;
909
910                /**
911                * Object coretexField de invitation.
912                */
913                public var invitation : CoreTextField;
914
915                /**
916                 * Number duree alpha tween
917                 */
918                public var tweenDuration        :       Number
919
920                /**
921                * Marge du logo, de la croix de fermeture et du texte d'invitation (sur X et Y).
922                */
923                public var marge : int;
924
925
926
927                /**
928                * Object CoretexField du titre.
929                */
930                public var titre : CoreTextField
931
932                /**
933                * Object CoretexField du titre.
934                */
935                public var souhait : CoreTextField = new CoreTextField()
936
937                        /**
938                * Object CoretexField du titre.
939                */
940                public var duree: CoreTextField = new CoreTextField()
941
942                                /**
943                * Object CoretexField du titre.
944                */
945                public var compteur: CoreTextField = new CoreTextField()
946
947
948
949                /**
950                * Object CoretexField du titre.
951                */
952                public var volume : CoreTextField = new CoreTextField()
953
954                /**
955                * Object CoretexField du titre.
956                */
957                public var volume_retour : CoreTextField = new CoreTextField()
958
959                /*
960                 * Coordonnées vertical du champs de texte d'invitation
961                 */
962                public var invit_X      : int;
963
964                /*
965                 * Coordonnées horizontales du champs de texte d'invitation
966                 */
967                public var invit_Y      : int;
968
969
970                /**
971                 * Objet int session
972                 */
973                private var session_son:int
974
975                /**
976                 * Objet Bitmap de la croix de fermeture.
977                 */
978        public var header_croix : Bitmap ;
979
980                /**
981        * L'objet popup_texte_header_logo de l'instance MyPopup
982        */
983        public var popup_son_header_logo : Bitmap ;
984
985                /*-------------------------------------------------*/
986                /**
987                * Object coretexField de language.
988                */
989                public var language_label : CoreTextField;
990
991                /**
992                 * Langue d'écriture par défaut dans le xml de configuration
993                 */
994                public var langue_audio_defaut:String;
995
996                /**
997                 * Langue ecriture disponible dans le xml de configuration
998                 */
999                public var langue_audio_disponible:String;
1000
1001                /**
1002                 * Langue ecriture disponible dans le xml de configuration
1003                 */
1004                public var langue_audio_disponible_long:String;
1005
1006
1007                /**
1008                 * Object Array pour lister les noms de langues entiers
1009                 */
1010                private var tableau_label_long:Array
1011
1012                /**
1013                 * Object Array pour lister les noms de langues court (fr,en,...)
1014                 */
1015                private var tableau_label_court:Array
1016
1017
1018                /**
1019                * Espace entre le logo et le titre.
1020                */
1021                public var espace_logo_titre : int;
1022
1023                private var header_ui :Sprite = new Sprite()
1024
1025                private var conteneur_body : Sprite = new Sprite();
1026
1027                private var conteneur_croix:Sprite = new Sprite()
1028                private var conteneur:Sprite = new Sprite()
1029
1030                private var     chemin_red5:String=new String("rtmp://91.121.7.219/oflaDemo");
1031                public var langue_label_defaut:String = new String()
1032
1033                /**
1034                 * Object LangConversion
1035                 */
1036                private var langConversion :LangConversion = new LangConversion()
1037
1038                /**
1039                 * Object combobox des langues
1040                 */
1041                public var combo_box:ComboBox=new ComboBox();
1042
1043
1044
1045}
1046
1047
1048}
Note: See TracBrowser for help on using the repository browser.