source: Collectif_Otra/global.reflet-web.net/lib/reflet_swf/src/Application.as @ 2820

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

Factory dans vegas

  • Property svn:executable set to *
File size: 15.3 KB
Line 
1package
2{
3        import adobe.utils.CustomActions;
4        import andromeda.config.Config;
5        import andromeda.config.ConfigResource;
6        import andromeda.ioc.core.ObjectDefinition;
7        import vegas.ioc.factory.ECMAObjectFactory;
8        import andromeda.ioc.io.ObjectResource;
9        import andromeda.net.XMLLoader;
10        import flash.events.IOErrorEvent;
11        import flash.events.MouseEvent;
12        import flash.net.URLRequest;
13        import flash.text.*;
14        import flash.display.*
15        import flash.events.Event;
16        import flash.events.ProgressEvent;
17        import flash.ui.Mouse;
18        import system.events.EventDispatcher;
19        import system.text.html.HTML
20
21        import flash.events.TimerEvent;
22        import pegas.transitions.Timer;
23        import asgard.display.*
24        import asgard.net.ECMAObjectLoader;
25        import asgard.text.*
26        import vegas.ioc.factory.ObjectConfig ;
27
28        import lunas.display.button.FrameLabelButton;
29
30        import pegas.draw.FillStyle;
31        import pegas.display.DisplayObjects;
32        import flash.geom.Rectangle;
33        import pegas.draw.Align
34        import system.Reflection;
35        import system.events.ActionEvent;
36        import system.logging.LoggerLevel;
37        import system.logging.targets.SOSTarget;
38        import system.logging.targets.TraceTarget;
39
40        import andromeda.events.LocalizationEvent;
41        import andromeda.i18n.*
42
43        import display.Display
44        import display.Wallpaper
45        import display.Footer
46        import display.MyPopUpTexte
47        import display.MyPopUpSon
48        import display.Rendu
49
50        import system.eden;
51        import system.evaluators.EdenEvaluator;
52        import system.events.ActionEvent;
53        import system.events.FrontController;
54        import andromeda.i18n.Localization;
55        import andromeda.events.LocalizationEvent;
56        import andromeda.i18n.EdenLocalizationLoader;
57        import andromeda.i18n.Lang;
58        import andromeda.i18n.Locale;
59        import andromeda.i18n.Localization;
60        import andromeda.ioc.net.ObjectResourceInfo;
61        import system.formatters.DateFormatter
62        import objet.Preloader
63        import asgard.media.*
64        import com.ths.utils.sharedObject.Cookies
65        import flash.system.*
66
67        import com.hybrid.ui.ToolTip;
68        //[SWF(width="800", height="800", frameRate="24", backgroundColor="#666666")]
69
70        /**
71         * The main Application class of the application.
72         */
73        public class Application extends ApplicationDisplay
74        {
75                //connection au socket XML
76                Security.loadPolicyFile("xmlsocket://88.191.102.232:843" );
77
78                private var production : Boolean = false
79                /**
80                 * Creates a new Application instance.
81                 */
82                public var localization:Localization;
83
84                /**
85                 * Objet xml de configuration
86                 */
87
88                public var url                  :       String = root.loaderInfo.url;//"http://kent1.reflet-web.net"//
89
90
91                public var regexp               :       RegExp = /^http:\/\/(.+?)\./i
92                public var DOMAINE              :       Array = url.match(regexp);
93
94                public var factory              :       ECMAObjectFactory = ECMAObjectFactory.getInstance()
95                public var definition   :       ObjectDefinition;
96                public var preloader    :       Preloader = new Preloader("http://global.reflets.org/local/cache-vignettes/L150xH150/siteon0-8be3d.png",new TextFormat( "Verdana", 12,0xFFFFFF),false,0xFFFFFF)
97                public var delay                :       int = 3000
98                public var timer                :       Timer = new Timer( delay, -1);
99                private var langue_label_defaut : String
100                private var conf                :       Config = Config.getInstance() ;
101                private var contributions : String ;
102                private var groupe               : String
103                private var source_des_contributions             : String  = "domaine" // groupe // global
104
105                public function Application()
106                {
107                        //var date:Date = new Date().getTime
108
109
110                        if (new Cookies("reflet_user").read("user_reflet") == "") new Cookies("reflet_user").write("user_reflet", new Date().getTime());
111
112                        stage.align     = StageAlign.TOP_LEFT ;
113                        stage.scaleMode = StageScaleMode.NO_SCALE ;
114
115                        localization  = Localization.getInstance() ;
116
117                        // logging
118                        var traceTarget:TraceTarget = new TraceTarget() ;
119                        traceTarget.filters         = ["*"] ;
120                        traceTarget.level           = LoggerLevel.ALL ;
121                        traceTarget.includeLines    = true  ;
122                        traceTarget.includeTime     = true  ;
123
124                        var sosTarget:SOSTarget         = new SOSTarget( Reflection.getClassPackage(this) , 0xFFD9A2 ) ;
125                        sosTarget.filters               = ["*"] ;
126                        sosTarget.level                 = LoggerLevel.ALL ;
127                        sosTarget.includeLines          = true  ;
128                        sosTarget.includeTime           = true  ;
129
130                        //loader
131                        this.addChild(preloader)
132                        preloader.field.autoSize = TextFieldAutoSize.LEFT ;
133                        DisplayObjects.align( preloader , new Rectangle( 0, 0 , this.stage.stageWidth, this.stage.stageHeight) , Align.LEFT);
134
135
136                        //execution
137                        charger_xml_conf()
138
139                        //listeners
140                        timer.addEventListener( TimerEvent.TIMER_COMPLETE , delay_expired);
141                }
142
143                /**
144                 * Cette méthode charge automatiquement le XML de configuration du domaine.
145                 */
146                private function charger_xml_conf():void
147                {
148                        var url_xml: String;
149                        if (production) { url_xml ="http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine=ths" }
150                        else
151                        {
152                                if (flashVars.getValue("domaine") != null)
153                                {
154                                        url_xml = "http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine=" + flashVars.getValue("domaine")
155                                        new Cookies("reflet_domaine").write("domaine", flashVars.getValue("domaine"));
156
157                                }
158                                else url_xml = "http://global.reflets.org/spip.php?action=reflet_charger_conf&domaine="+DOMAINE[1]
159                        }
160
161                        var chargeur_xml:XMLLoader=new XMLLoader(new URLRequest(url_xml))
162                        chargeur_xml.addEventListener(Event.OPEN,preload_start)
163                        chargeur_xml.addEventListener(ProgressEvent.PROGRESS,preload_progress)
164                        chargeur_xml.addEventListener(Event.COMPLETE, map_config)
165                        chargeur_xml.addEventListener(IOErrorEvent.IO_ERROR,preload_error)
166                }
167
168
169
170
171                /**
172                 * Méthode invoquée pour mapper en objet CONFIG les paramètres XMl dans la pile ioc.
173                 */
174                private function map_config(e:Event ):void
175                {
176                        var xml:XML = new XML ( HTML.decode( e.currentTarget.data) )
177                        // mappage xml
178
179                        if ( xml.reflet_en_pause == "oui") { affichage_en_pause(xml.langue_label_defaut) }
180                        else
181                        {
182
183
184                                groupe  = xml.groupe
185                                langue_label_defaut             = xml.langue_label_defaut ;
186
187                                //source_des_contributions = xml.source_des_contributions ;  ---------------------------------------------  CORRIGER
188
189                                var xmlconfig:Object =
190                                        {
191                                                configuration :
192                                                {
193                                                        domaine                                                         : xml.domaine,
194                                                                presentation                                            : xml.presentation,
195                                                                titre                                                           : xml.titre,
196                                                                source_des_contributions                        : xml.source_des_contributions,
197                                                                wallpaper                                                       : xml.wallpaper,
198                                                                wallpaper_position                                      : xml.wallpaper_position,
199                                                                lien_global                                                     : xml.lien_global,
200                                                                langue_label_defaut                                     : xml.langue_label_defaut,
201                                                                langue_label_disponible                         : xml.langue_label_disponible,
202                                                                langue_label_disponible_long            : xml.langue_label_disponible_long,
203                                                                langue_ecriture_defaut                          : xml.langue_ecriture_defaut,
204                                                                langue_ecriture_disponible                      : xml.langue_ecriture_disponible,
205                                                                langue_ecriture_disponible_long         : xml.langue_ecriture_disponible_long,
206                                                                langue_description                                      : xml.langue_description,
207                                                                langue_audio_defaut                                     : xml.langue_audio_defaut,
208                                                                langue_audio_disponible                         : xml.langue_audio_disponible,
209                                                                langue_audio_disponible_long            : xml.langue_audio_disponible_long,
210                                                                reflet_en_pause                                         : xml.reflet_en_pause,
211                                                                panneau                                                         : xml.panneau,
212                                                                contribution_son                                        : xml.contribution_son,
213                                                                contribution_fichier_son                        : xml.contribution_fichier_son,
214                                                                contribution_texte                                      : xml.contribution_texte,
215                                                                nbr_de_caracteres_max                           : xml.max_texte,
216                                                                max_son                                                         : xml.max_son,
217                                                                censure_active                                          : xml.censure_active,
218                                                                moderation_active                                       : xml.moderation_active,
219                                                                contenu                                                         : xml.contenu,
220                                                                moderation_revelation_nv                        : xml.moderation_revelation_nv,
221                                                                censure_revelation_nv                           : xml.censure_revelation_nv,
222                                                                censure_liste                                           : xml.censure_liste,
223                                                                wallpaper_url                                           : xml.wallpaper_url
224
225                                                }
226                                        }
227                                conf.map(xmlconfig)
228                                charger_application_eden()
229                        }
230                }
231
232                //private function charger_contributions_textes () : void
233                //{
234                //
235                //var url_contribs: String;
236                //
237                //if (production) url_contribs = "xml/contributions_textes.xml"
238                //else
239                //{
240                //trace("chargement des contributions ")
241                //switch(source_des_contributions)
242                //{
243                //case "domaine":
244                //trace("--> par domaine")
245                //if (flashVars.getValue("domaine") != null) url_contribs = "http://global.reflet-web.net/spip.php?action=reflet_charger_contribs&domaine="+flashVars.getValue("domaine")
246                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+DOMAINE[1]
247                //break;
248                //
249                //case "groupe":
250                //trace("--> par groupe")
251                //if (groupe !="") // si la balise groupe est présente.
252                //{
253                //var liste_des_groupes : String=new String("")
254                //groupe.split(",").forEach (function navigate(element:*, index:int, arr:Array):void {liste_des_groupes += "&id_groupe[]"+element       });
255                //}
256                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=" + DOMAINE[1]
257                //break;
258                //
259                //case "global":
260                //trace("--> global")
261                //url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=global"
262                //break;
263                //
264                //default:
265                //trace("erreur")
266                //break;
267                //}
268                //}
269                //
270                //
271                //
272                //var chargeur_xml2:XMLLoader=new XMLLoader(new URLRequest(url_contribs))
273                //chargeur_xml2.addEventListener(Event.COMPLETE, charger_application_eden ) //charger_contributions_sonores
274                //
275                //}
276                //
277                //private function charger_contributions_sonores () : void
278                //{
279                //
280                //var url_contribs: String;
281                //
282                //if (production) url_contribs = "xml/contributions_textes.xml"
283                //else
284                //{
285                //switch(source_des_contributions)
286                //{
287                //case "domaine":
288                //if (flashVars.getValue("domaine") != null) url_contribs = "http://global.reflet-web.net/spip.php?action=reflet_charger_contribs&domaine="+flashVars.getValue("domaine")
289                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine="+DOMAINE[1]
290                //break;
291                //
292                //case "groupe":
293                //if (groupe !="") // si la balise groupe est présente.
294                //{
295                //var liste_des_groupes : String=new String("")
296                //groupe.split(",").forEach (function navigate(element:*, index:int, arr:Array):void {liste_des_groupes += "&id_groupe[]"+element       });
297                //}
298                //else url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=" + DOMAINE[1]
299                //break;
300                //
301                //case "global":
302                //url_contribs = "http://global.reflets.org/spip.php?action=reflet_charger_contribs&domaine=global"
303                //break;
304                //
305                //default:
306                //trace("erreur")
307                //break;
308                //}
309                //}
310                //
311                //
312                //
313                //var chargeur_xml2:XMLLoader=new XMLLoader(new URLRequest(url_contribs))
314                //chargeur_xml2.addEventListener(Event.COMPLETE, charger_application_eden)
315                //
316                //}
317
318
319                /**
320                 * Cette méthode est invoquée à la suite de la method "map_config". Elle charge le fichier "application.eden" avec la classe ECMAPbjectLoader.
321                 */
322                private function charger_application_eden():void
323                {
324
325
326
327
328
329
330
331
332                        if (flashVars.getValue("url_libs") == null) (preloader.error(" ... no url_libs found."))
333
334
335
336                        //Localization.getInstance().get(langue_label_defaut).get("footer.invitation_label")
337                        var chargeur_application:ECMAObjectLoader = new ECMAObjectLoader( "application.eden" , "http://"+DOMAINE[1]+".reflets.org/lib/reflet_libs/context/") ;
338                        chargeur_application.addEventListener( ActionEvent.START  , preload_start  ) ;
339                        chargeur_application.resourceInfo.addEventListener( ProgressEvent.PROGRESS , preload_progress_eden ) ;
340                        chargeur_application.addEventListener( ActionEvent.FINISH , preload_finish ) ;
341                        chargeur_application.addEventListener( IOErrorEvent.IO_ERROR , preload_error ) ;
342
343                        chargeur_application.root = this ;
344                        chargeur_application.run();
345
346                }
347
348
349                private function preload_start(e:Event):void
350                {
351                        preloader.start()
352
353                }
354
355                private function preload_progress(e:ProgressEvent):void
356                {
357                        preloader.progress("Loading ...")
358                }
359
360                private function preload_progress_eden(e:ProgressEvent):void
361                {
362                        var info:ObjectResourceInfo = e.target as ObjectResourceInfo ;
363                        if ( info != null )
364                        {
365                                switch (info.resource.type)
366                                {
367                                        case "config":
368                                                preloader.progress("Loading configuration ...")
369                                                break;
370
371                                        case "i18n":
372                                                preloader.progress("Loading languages ...")
373
374                                                break;
375
376                                        case "context":
377                                                preloader.progress("Loading scripts ...")
378                                                break;
379
380                                        case "assembly":
381                                                preloader.progress("Loading graphics ...")
382                                                break;
383
384                                        case "font":
385                                                preloader.progress("Loading fonts ...")
386                                                break;
387
388                                        case "style":
389                                                preloader.progress("Loading styles ...")
390                                                break;
391
392                                        default:
393                                                preloader.progress("Loading ....")
394                                }
395
396                        }
397
398
399
400                }
401
402                private function preload_error(e:IOErrorEvent):void
403                {
404
405                        preloader.error("Loading failed. Try reload or alert an administrator.")
406                }
407
408                private function preload_finish(e:ActionEvent):void
409                {
410
411                        logger.info( this + " " + e) ;
412
413                        preloader.finish("Load finish",delay)
414                        timer.start();
415
416                        localization.current = langue_label_defaut
417
418
419                }
420
421                public function delay_expired(event:TimerEvent):void
422                {
423                        removeChild(preloader) ;
424                        //preloader = undefined ;
425                        //timer.removeEventListener(TimerEvent.TIMER_COMPLETE,delay_expired)
426                        //this.dispatchEvent(new Event("loaded"))
427                }
428
429
430
431
432                // var progressColor    :       Number  = ( flashVars.getValue("progressColor", new EdenEvaluator()) || 0x666666 ) as Number  ;
433
434
435
436                /**
437                 * Invoquée lorsqu'un évenement LocalisationEvent arrive !
438                 */
439                public function changeLocalization( e:LocalizationEvent ):void
440                {
441                        //trace ("current lang="+e.current);
442                        //trace("getLocal = " + e.getLocale().footer.invitation_label );
443                        //trace()
444                }
445
446                private function affichage_en_pause(langue:String):void
447                {
448                        trace("pause"+langue)
449                        var conteneur_logo:Sprite = new Sprite()
450                        var loader : Loader  = new Loader();
451                        loader.load(new URLRequest("images/logo.png"));
452                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function completeLoad(e:Event):void{trace("pof")});
453
454                        this.addChild(conteneur_logo)
455                        conteneur_logo.addChild(loader);
456                        DisplayObjects.align( conteneur_logo , new Rectangle( 30 , 0 , this.stage.stageWidth , this.stage.stageHeight ) , Align.LEFT );
457
458
459                        conteneur_logo.addEventListener(MouseEvent.ROLL_OVER, function(e:Event):void
460                        {
461                                var tf:TextFormat = new TextFormat();
462                                tf.size = 10;
463                                tf.color = 0x000000;
464
465                                var tt:ToolTip = new ToolTip();
466                                tt.hook = true;
467                                tt.cornerRadius = 10;
468                                tt.tipWidth = 80;
469                                //tt.tipHeight = 200;
470                                tt.titleEmbed = false;
471                                tt.align = "center";
472                                tt.titleFormat = tf;
473                                tt.contentFormat=tf
474                                tt.show( conteneur_logo, "Administrator of this Reflet local:"+DOMAINE[1]+ "put this Reflet on stand-by.");
475
476                        })
477
478
479                        removeChild(preloader)
480                }
481
482
483                ////// LINKAGE ENFORCER
484
485                // display
486                Display;
487                Wallpaper;
488                Footer;
489                MyPopUpTexte;
490                MyPopUpSon;
491                Rendu;
492
493
494                // DisplayObject
495                DisplayObjects;
496
497
498                // pegas.draw
499                FillStyle ;
500
501                // lunas.display.button
502                FrameLabelButton ;
503
504                CoreBitmap;
505                CoreSound;
506                //////// Authorized classpath and class in the eden deserialization
507                eden.addAuthorized
508                        (
509                                "flash.filters.*" ,
510                                "pegas.draw.*",
511                                "flash.display.*",
512                                "asgard.text.*",
513                                "asgard.display.*"
514
515                        ) ;
516        }
517
518
519
520
521}
Note: See TracBrowser for help on using the repository browser.