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

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

Des librairies ont changé

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